From 236fd1d9f2009083fbbfce7190c27fbf1d7c88b8 Mon Sep 17 00:00:00 2001 From: yo mama Date: Fri, 7 Aug 2015 18:33:30 -0700 Subject: getting ready --- frontend/css/cssreset.css | 1 + frontend/css/general.css | 1 + frontend/css/images | 1 + frontend/css/jquery-ui-1.8.16.custom.css | 1 + frontend/css/main.css | 1 + frontend/css/normalize.css | 1 + frontend/css/overlay.css | 1 + frontend/css/result.css | 1 + frontend/css/sketch.css | 1 + frontend/css/smoothness: | 1 + frontend/css/unsemantic-grid-responsive.css | 1 + frontend/im/#ffdead-black_1319995689.jpg | Bin 0 -> 5275 bytes frontend/im/.htaccess | 7 + ...lor2tablet_1327477683_1327478593_1327480237.gif | Bin 0 -> 256256 bytes frontend/im/HTACCESS | 3 + frontend/im/OLD/01/_1424365694_frankhats.gif | Bin 0 -> 43 bytes ...118_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes ...138_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes ...194_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes .../OLD/37/imBreak_1424908970_xx_abridged___.gif | Bin 0 -> 313120 bytes ...041_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes ...095_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes ...214_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes ...153_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes frontend/im/OLD/8c/_1424361556_dvvidpw.gif | Bin 0 -> 43 bytes ...066_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes frontend/im/OLD/9f/imgrid_1424839118_pepper.png | Bin 0 -> 2371 bytes .../OLD/ba/imBreak_1424908974_xx_abridged___.gif | Bin 0 -> 312820 bytes ...3883560371dumpfmdatesdooduok_1424365488_mmi.gif | Bin 0 -> 43 bytes ...3883560371dumpfmdatesdooduok_1424365545_mmi.gif | Bin 0 -> 43 bytes frontend/im/OLD/bc/new_1424372778.gif | Bin 0 -> 43 bytes frontend/im/OLD/bc/new_1424372876.gif | Bin 0 -> 43 bytes ...174_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes frontend/im/OLD/clearthedirectories | 51 + ...121_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes .../OLD/e6/imBreak_1424908981_xx_abridged___.gif | Bin 0 -> 220702 bytes frontend/im/OLD/e9/_1424362273_dvvidpw.gif | Bin 0 -> 43 bytes ...230_imgrid_1424839001_ymba2ut_pepper_pepper.png | Bin 0 -> 74045 bytes frontend/im/OLD/f8/_1424370030.gif | Bin 0 -> 43 bytes frontend/im/THEHTACCESS | 3 + frontend/im/api.html | 50 + frontend/im/arrow_pointing_left.png | Bin 0 -> 336 bytes frontend/im/asdf.html | 462 ++ frontend/im/colors.html | 5429 ++++++++++++++++++++ frontend/im/colors/css/jquery.fancybox.css | 274 + frontend/im/colors/css/style.css | 264 + frontend/im/colors/iframe.js | 25 + frontend/im/colors/images/Thumbs.db | Bin 0 -> 7680 bytes frontend/im/colors/images/bg.dither.gif | Bin 0 -> 52 bytes frontend/im/colors/images/blank.gif | Bin 0 -> 43 bytes frontend/im/colors/images/fancybox_loading.gif | Bin 0 -> 6567 bytes frontend/im/colors/images/fancybox_loading@2x.gif | Bin 0 -> 13984 bytes frontend/im/colors/images/fancybox_overlay.png | Bin 0 -> 1003 bytes frontend/im/colors/images/fancybox_sprite.png | Bin 0 -> 1362 bytes frontend/im/colors/images/fancybox_sprite@2x.png | Bin 0 -> 6553 bytes frontend/im/colors/images/gradient.jpg | Bin 0 -> 1079 bytes frontend/im/colors/images/hoverbackground.jpg | Bin 0 -> 661 bytes frontend/im/colors/images/imcupbg.jpg | Bin 0 -> 18738 bytes frontend/im/colors/images/user_convo.png | Bin 0 -> 500 bytes frontend/im/colors/images/vase.png | Bin 0 -> 9650 bytes frontend/im/colors/images/vaseshim.png | Bin 0 -> 508 bytes frontend/im/colors/index.html | 108 + frontend/im/colors/js/ancient.js | 528 ++ frontend/im/colors/js/colorpicker.js | 2 + frontend/im/colors/js/data.js | 6 + frontend/im/colors/js/jquery-1.10.1.js | 6 + frontend/im/colors/js/jquery-1.10.1.min.map | 1 + frontend/im/colors/js/jquery.fancybox.js | 2020 ++++++++ .../im/colors/js/jquery.mousewheel-3.0.6.pack.js | 13 + frontend/im/colors/js/jquery.remember-state.js | 193 + .../im/colors/js/jquery.remember-state.pack.js | 1 + frontend/im/colors_iframe.js | 45 + frontend/im/df.html | 10 + frontend/im/df.png | Bin 0 -> 23215 bytes frontend/im/gallery/.htaccess | 2 + frontend/im/gallery/pep/.htaccess | 2 + frontend/im/gallery_style.css | 51 + frontend/im/gradient.html | 402 ++ frontend/im/imcupbg.jpg | Bin 0 -> 18738 bytes frontend/im/index.html | 569 ++ frontend/im/new.gif | Bin 0 -> 144 bytes frontend/im/newimagemaker.html | 289 ++ frontend/im/shader/index.html | 2 + frontend/im/thing1.gif | Bin 0 -> 358198 bytes frontend/im/thing2.png | Bin 0 -> 53371 bytes .../imbreak/_broken_by_janie_30e_semitrans1.png | Bin 0 -> 1217 bytes frontend/imbreak/cssreset.css | 7 + frontend/imbreak/imbreakfavico.ico | Bin 0 -> 1152 bytes .../imbreak/img/ALPHA20IVY20201_1323328300.gif | Bin 0 -> 151388 bytes .../imbreak/img/_broken_by_janie_147_greeks.gif | Bin 0 -> 979368 bytes .../img/_broken_by_janie_16b_justhost_155x75.gif | Bin 0 -> 3946 bytes ...white_marble_columns_20th_century_d5409361h.jpg | Bin 0 -> 5398 bytes frontend/imbreak/img/columns.jpg | Bin 0 -> 5398 bytes frontend/imbreak/img/firstlogo.gif | Bin 0 -> 71127 bytes frontend/imbreak/img/generating.gif | Bin 0 -> 6679 bytes frontend/imbreak/img/greeks.gif | Bin 0 -> 979364 bytes .../imbreak/img/imgrid_1328137237_ivy_pepper.gif | Bin 0 -> 161764 bytes frontend/imbreak/img/ivy.gif | Bin 0 -> 196165 bytes frontend/imbreak/img/ivy2.gif | Bin 0 -> 151388 bytes frontend/imbreak/img/newmain.gif | Bin 0 -> 248285 bytes frontend/imbreak/img/og.jpg | Bin 0 -> 5398 bytes .../img/on9TF_1322970909_1322970984_1323325278.gif | Bin 0 -> 53535 bytes frontend/imbreak/img/title1.gif | Bin 0 -> 71123 bytes frontend/imbreak/index.html | 274 + frontend/imbreak/jquery-ui-1.8.16.custom.css | 313 ++ frontend/imbreak/js/imbreak-main.js | 113 + frontend/imbreak/js/jcookie.js | 95 + frontend/imbreak/js/jquery-ui.min.js | 414 ++ frontend/imbreak/js/jquery.cookie.js | 96 + frontend/imbreak/js/jquery.min.js | 4 + frontend/imbreak/newindex.html | 74 + frontend/imbreak/semitrans1.png | Bin 0 -> 1213 bytes frontend/imbreak/thegif/1.gif | Bin 0 -> 40908 bytes frontend/imbreak/thegif/2.gif | Bin 0 -> 46199 bytes frontend/imbreak/thegif/2.jpg | Bin 0 -> 31214 bytes frontend/imbreak/thegif/3.gif | Bin 0 -> 38151 bytes frontend/imbreak/thegif/4.gif | Bin 0 -> 37836 bytes frontend/imbreak/thegif/5.gif | Bin 0 -> 37446 bytes frontend/imbreak/thegif/6.gif | Bin 0 -> 58649 bytes frontend/imbreak/thegif/6.jpg | Bin 0 -> 35595 bytes frontend/imbreak/thegif/6.sun | Bin 0 -> 160831 bytes frontend/imbreak/thegif/three.gif | Bin 0 -> 37898 bytes frontend/imdither/.gitignore | 2 + frontend/imdither/18.bmp | Bin 0 -> 330 bytes frontend/imdither/bottle.py | 3605 +++++++++++++ frontend/imdither/imdither.html | 291 ++ frontend/imdither/img/logo.png | Bin 0 -> 8810 bytes frontend/imdither/jquery.min.js | 18 + frontend/imdither/makeDither.py | 72 + frontend/imdither/pbutils.py | 238 + frontend/imdither/run.py | 35 + frontend/imdither/s3.py | 618 +++ frontend/imdither/urlDownload.py | 33 + frontend/img/ALPHA20IVY20201_1323328300.gif | 1 + frontend/img/_broken_by_janie_147_greeks.gif | 1 + .../img/_broken_by_janie_16b_justhost_155x75.gif | 1 + ...white_marble_columns_20th_century_d5409361h.jpg | 1 + frontend/img/athenafinal.gif | 1 + frontend/img/background.gif | 1 + frontend/img/blackplant.png | 1 + frontend/img/blackplant2.png | 1 + frontend/img/blackplant3.png | 1 + frontend/img/bros.png | 1 + frontend/img/brush.png | 1 + frontend/img/columns.jpg | 1 + frontend/img/eraser.png | 1 + frontend/img/facebookimage.png | 1 + frontend/img/firstlogo.gif | 1 + frontend/img/generating.gif | 1 + frontend/img/greeks.gif | 1 + frontend/img/harrisbros.png | 1 + frontend/img/imgrid.png | 1 + frontend/img/imgrid_1328137237_ivy_pepper.gif | 1 + frontend/img/impattern.png | 1 + frontend/img/ivy.gif | 1 + frontend/img/ivy2.gif | 1 + frontend/img/loading.gif | 1 + frontend/img/logo.gif | 1 + frontend/img/newmain.gif | 1 + frontend/img/og.jpg | 1 + frontend/img/oldathena.gif | 1 + .../img/on9TF_1322970909_1322970984_1323325278.gif | 1 + frontend/img/test.gif | 1 + frontend/img/thatbackground.gif | 1 + frontend/img/title1.gif | 1 + frontend/imgradient/bevelborder(2) | 295 ++ frontend/imgradient/colors.html | 5429 ++++++++++++++++++++ frontend/imgradient/colors_iframe.js | 82 + .../images/ui-bg_diagonal-maze_75_ffffff_10x10.png | Bin 0 -> 81 bytes .../ui-bg_diagonals-medium_75_cccccc_40x40.png | Bin 0 -> 192 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../images/ui-bg_gloss-wave_0_aaaaaa_500x100.png | Bin 0 -> 491 bytes .../images/ui-bg_inset-hard_55_fbf9ee_1x100.png | Bin 0 -> 112 bytes .../images/ui-bg_inset-soft_95_fef1ec_1x100.png | Bin 0 -> 123 bytes .../images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../css/custom-theme/jquery-ui-1.8.16.custom.css | 313 ++ frontend/imgradient/dirs.html | 256 + frontend/imgradient/dirs.py | 7 + .../firstrun/blue-turquoise_1315104576.gif | Bin 0 -> 27619 bytes .../firstrun/blue-turquoise_1315104586.gif | Bin 0 -> 40953 bytes .../firstrun/blue-turquoise_1315104592.gif | Bin 0 -> 40953 bytes .../firstrun/blue-turquoise_1315104597.gif | Bin 0 -> 40953 bytes .../firstrun/blue-turquoise_1315104604.gif | Bin 0 -> 30209 bytes .../firstrun/blue-turquoise_1315104609.gif | Bin 0 -> 40953 bytes .../imgradient/firstrun/green-black_1315122389.gif | Bin 0 -> 26606 bytes .../imgradient/firstrun/green-black_1315122400.gif | Bin 0 -> 42529 bytes .../imgradient/firstrun/green-black_1315122410.gif | Bin 0 -> 140207 bytes .../imgradient/firstrun/green-black_1315122420.gif | Bin 0 -> 148464 bytes .../imgradient/firstrun/green-black_1315122433.gif | Bin 0 -> 150936 bytes .../imgradient/firstrun/green-black_1315122439.gif | Bin 0 -> 152250 bytes .../imgradient/firstrun/green-black_1315122450.gif | Bin 0 -> 39752 bytes .../firstrun/green-darkorchid_1315122486.gif | Bin 0 -> 31822 bytes .../firstrun/pink-brown_1315117256_pepper.gif | Bin 0 -> 115111 bytes .../firstrun/pink-brown_1315117275_pepper.gif | Bin 0 -> 630 bytes .../firstrun/pink-brown_1315117282_pepper.gif | Bin 0 -> 36839 bytes .../firstrun/pink-brown_1315117337_pepper.gif | Bin 0 -> 2864 bytes .../firstrun/pink-brown_1315117344_pepper.gif | Bin 0 -> 9356 bytes .../firstrun/red-black_1315104452_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/red-black_1315104469_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/red-black_1315104474_pepper.gif | Bin 0 -> 28822 bytes .../firstrun/red-black_1315104486_pepper.gif | Bin 0 -> 44167 bytes .../firstrun/red-black_1315104496_pepper.gif | Bin 0 -> 49569 bytes .../firstrun/red-black_1315104503_pepper.gif | Bin 0 -> 49569 bytes .../firstrun/red-black_1315104513_pepper.gif | Bin 0 -> 50791 bytes .../firstrun/red-black_1315104557_pepper.gif | Bin 0 -> 28206 bytes .../firstrun/red-black_1315104564_pepper.gif | Bin 0 -> 28544 bytes .../firstrun/red-black_1315104570_pepper.gif | Bin 0 -> 28206 bytes .../firstrun/red-black_1315104579_pepper.gif | Bin 0 -> 28206 bytes .../firstrun/red-black_1315104583_pepper.gif | Bin 0 -> 28206 bytes .../firstrun/red-black_1315105326_pepper.gif | Bin 0 -> 47817 bytes .../firstrun/snow2-orange_1315118700.gif | Bin 0 -> 116920 bytes .../snow2-rosybrown1_1315117026_pepper.gif | Bin 0 -> 29058 bytes .../firstrun/turquoise-black_1315109992.gif | Bin 0 -> 30126 bytes .../firstrun/turquoise-black_1315109999.gif | Bin 0 -> 110122 bytes .../firstrun/turquoise-black_1315110014.gif | Bin 0 -> 30126 bytes .../firstrun/turquoise-black_1315110018.gif | Bin 0 -> 116015 bytes .../firstrun/turquoise-black_1315116328_pepper.gif | Bin 0 -> 30126 bytes .../turquoise-indianred_1315106124_pepper.gif | Bin 0 -> 30063 bytes .../turquoise-indianred_1315106162_pepper.gif | Bin 0 -> 37760 bytes .../turquoise-indianred_1315106185_pepper.gif | Bin 0 -> 47117 bytes .../turquoise-indianred_1315106200_pepper.gif | Bin 0 -> 40017 bytes .../turquoise-turquoise1_1315165837_pepper.gif | Bin 0 -> 145424 bytes .../turquoise-turquoise1_1315165849_pepper.gif | Bin 0 -> 65666 bytes .../imgradient/firstrun/white-black_1315090214.gif | Bin 0 -> 28786 bytes .../imgradient/firstrun/white-black_1315090397.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315104253_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315104262_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315104264_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315104276_pepper.gif | Bin 0 -> 5707 bytes .../firstrun/white-black_1315104281_pepper.gif | Bin 0 -> 604 bytes .../firstrun/white-black_1315104287_pepper.gif | Bin 0 -> 5707 bytes .../firstrun/white-black_1315104447_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315106725_pepper.gif | Bin 0 -> 28786 bytes .../imgradient/firstrun/white-black_1315113027.gif | Bin 0 -> 28786 bytes .../imgradient/firstrun/white-black_1315113031.gif | Bin 0 -> 106725 bytes .../imgradient/firstrun/white-black_1315113039.gif | Bin 0 -> 630 bytes .../imgradient/firstrun/white-black_1315113043.gif | Bin 0 -> 37967 bytes .../imgradient/firstrun/white-black_1315113054.gif | Bin 0 -> 28786 bytes .../imgradient/firstrun/white-black_1315113059.gif | Bin 0 -> 105970 bytes .../imgradient/firstrun/white-black_1315113066.gif | Bin 0 -> 630 bytes .../imgradient/firstrun/white-black_1315113070.gif | Bin 0 -> 37967 bytes .../imgradient/firstrun/white-black_1315113080.gif | Bin 0 -> 3562 bytes .../imgradient/firstrun/white-black_1315113215.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315113231_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315113240_pepper.gif | Bin 0 -> 630 bytes .../firstrun/white-black_1315113554_pepper.gif | Bin 0 -> 630 bytes .../firstrun/white-black_1315113558_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315114146_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315114150_pepper.gif | Bin 0 -> 102899 bytes .../firstrun/white-black_1315114156_pepper.gif | Bin 0 -> 630 bytes .../firstrun/white-black_1315114160_pepper.gif | Bin 0 -> 37967 bytes .../firstrun/white-black_1315115826_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315115828_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315115830_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315115831_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315116319_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315117463_pepper.gif | Bin 0 -> 102435 bytes .../firstrun/white-black_1315118264_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315118293_pepper.gif | Bin 0 -> 106729 bytes .../firstrun/white-black_1315118571_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315119305_pepper.gif | Bin 0 -> 106669 bytes .../firstrun/white-black_1315119637_pepper.gif | Bin 0 -> 37967 bytes .../firstrun/white-black_1315120513_pepper.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315121913_pepper.gif | Bin 0 -> 630 bytes .../firstrun/white-black_1315121922_pepper.gif | Bin 0 -> 37967 bytes .../firstrun/white-black_1315121930_pepper.gif | Bin 0 -> 5584 bytes .../imgradient/firstrun/white-black_1315122356.gif | Bin 0 -> 21455 bytes .../imgradient/firstrun/white-black_1315122405.gif | Bin 0 -> 28786 bytes .../firstrun/white-black_1315159828_pepper.gif | Bin 0 -> 194 bytes .../firstrun/white-turquoise_1315113096.gif | Bin 0 -> 3851 bytes .../firstrun/white-turquoise_1315113100.gif | Bin 0 -> 3851 bytes .../firstrun/white-turquoise_1315113101.gif | Bin 0 -> 3851 bytes frontend/imgradient/index.html | 541 ++ frontend/imgradient/jquery-ui-1.8.16.custom.min.js | 84 + frontend/imgrid/3ddirs.txt | 256 + frontend/imgrid/backup.html | 466 ++ frontend/imgrid/colors/1.html | 59 + frontend/imgrid/colors/blackshim.png | Bin 0 -> 382 bytes frontend/imgrid/colors/colors/1.html | 59 + frontend/imgrid/colors/colors/blackshim.png | Bin 0 -> 382 bytes frontend/imgrid/colors/colors/grayshim.png | Bin 0 -> 399 bytes frontend/imgrid/colors/colors/hoverbutton.png | Bin 0 -> 1337 bytes frontend/imgrid/colors/colors/index.html | 3507 +++++++++++++ .../imgrid/colors/colors/js/backgroundswitcher.js | 38 + frontend/imgrid/colors/colors/js/colordict.js | 3 + .../imgrid/colors/colors/js/colordictionaries2.js | 3 + .../imgrid/colors/colors/js/ditherbackground.gif | Bin 0 -> 52 bytes .../imgrid/colors/colors/js/goldenfunctions.js | 33 + .../imgrid/colors/colors/js/hexrgbnametoggle.js | 148 + .../imgrid/colors/colors/js/hoverbackground.jpg | Bin 0 -> 661 bytes frontend/imgrid/colors/colors/js/hovercss.js | 31 + .../imgrid/colors/colors/js/iftransparentcss.js | 25 + .../imgrid/colors/colors/js/jquery-1.6.4.min.js | 4 + frontend/imgrid/colors/colors/js/jquery.cookie.js | 96 + .../imgrid/colors/colors/js/setupdimensions.js | 173 + .../imgrid/colors/colors/js/wrkshp/colors.html | 5429 ++++++++++++++++++++ frontend/imgrid/colors/colors/js/wrkshp/hexes | 1 + frontend/imgrid/colors/colors/js/wrkshp/maker.py | 33 + frontend/imgrid/colors/colors/js/wrkshp/names | 1 + frontend/imgrid/colors/colors/js/wrkshp/rgbs | 1 + frontend/imgrid/colors/colors/junk/ScrollEffect.js | 86 + .../colors/colors/junk/ScrollEffectcomingsoon.js | 237 + frontend/imgrid/colors/colors/junk/brush.ani | Bin 0 -> 12950 bytes frontend/imgrid/colors/colors/junk/colordictOLD.js | 2 + .../imgrid/colors/colors/junk/colorpicker.html | 254 + frontend/imgrid/colors/colors/junk/colorpixx.css | 2047 ++++++++ frontend/imgrid/colors/colors/junk/colorpixx.js | 92 + frontend/imgrid/colors/colors/junk/colors.html | 5429 ++++++++++++++++++++ frontend/imgrid/colors/colors/junk/colorsbest.html | 3606 +++++++++++++ frontend/imgrid/colors/colors/junk/divlist.js | 2 + frontend/imgrid/colors/colors/junk/divlistmaker | 32 + frontend/imgrid/colors/colors/junk/mapmaker.html | 3586 +++++++++++++ frontend/imgrid/colors/colors/junk/picker.js | 15 + frontend/imgrid/colors/colors/junk/scrollio.html | 3850 ++++++++++++++ frontend/imgrid/colors/colors/junk/separate | 126 + frontend/imgrid/colors/colors/junk/todo.txt | 135 + .../imgrid/colors/colors/junk/withscroller.html | 3850 ++++++++++++++ frontend/imgrid/colors/colors/minimap.html | 3891 ++++++++++++++ frontend/imgrid/colors/colors/minoan.gif | Bin 0 -> 16077 bytes frontend/imgrid/colors/colors/savior.html | 3582 +++++++++++++ frontend/imgrid/colors/colors/test.html | 56 + frontend/imgrid/colors/colors/vase.gif | Bin 0 -> 8214 bytes frontend/imgrid/colors/colors/vase.png | Bin 0 -> 9650 bytes frontend/imgrid/colors/colors/vaseshim.png | Bin 0 -> 508 bytes frontend/imgrid/colors/colors/whiteshim.png | Bin 0 -> 395 bytes frontend/imgrid/colors/grayshim.png | Bin 0 -> 399 bytes frontend/imgrid/colors/hoverbutton.png | Bin 0 -> 1337 bytes frontend/imgrid/colors/index.html | 3507 +++++++++++++ frontend/imgrid/colors/js/backgroundswitcher.js | 38 + frontend/imgrid/colors/js/colordict.js | 3 + frontend/imgrid/colors/js/colordictionaries2.js | 3 + frontend/imgrid/colors/js/ditherbackground.gif | Bin 0 -> 52 bytes frontend/imgrid/colors/js/goldenfunctions.js | 33 + frontend/imgrid/colors/js/hexrgbnametoggle.js | 148 + frontend/imgrid/colors/js/hoverbackground.jpg | Bin 0 -> 661 bytes frontend/imgrid/colors/js/hovercss.js | 31 + frontend/imgrid/colors/js/iftransparentcss.js | 25 + frontend/imgrid/colors/js/jquery-1.6.4.min.js | 4 + frontend/imgrid/colors/js/jquery.cookie.js | 96 + frontend/imgrid/colors/js/setupdimensions.js | 173 + frontend/imgrid/colors/js/wrkshp/colors.html | 5429 ++++++++++++++++++++ frontend/imgrid/colors/js/wrkshp/hexes | 1 + frontend/imgrid/colors/js/wrkshp/maker.py | 33 + frontend/imgrid/colors/js/wrkshp/names | 1 + frontend/imgrid/colors/js/wrkshp/rgbs | 1 + frontend/imgrid/colors/junk/ScrollEffect.js | 86 + .../imgrid/colors/junk/ScrollEffectcomingsoon.js | 237 + frontend/imgrid/colors/junk/brush.ani | Bin 0 -> 12950 bytes frontend/imgrid/colors/junk/colordictOLD.js | 2 + frontend/imgrid/colors/junk/colorpicker.html | 254 + frontend/imgrid/colors/junk/colorpixx.css | 2047 ++++++++ frontend/imgrid/colors/junk/colorpixx.js | 92 + frontend/imgrid/colors/junk/colors.html | 5429 ++++++++++++++++++++ frontend/imgrid/colors/junk/colorsbest.html | 3606 +++++++++++++ frontend/imgrid/colors/junk/divlist.js | 2 + frontend/imgrid/colors/junk/divlistmaker | 32 + frontend/imgrid/colors/junk/mapmaker.html | 3586 +++++++++++++ frontend/imgrid/colors/junk/picker.js | 15 + frontend/imgrid/colors/junk/scrollio.html | 3850 ++++++++++++++ frontend/imgrid/colors/junk/separate | 126 + frontend/imgrid/colors/junk/todo.txt | 135 + frontend/imgrid/colors/junk/withscroller.html | 3850 ++++++++++++++ frontend/imgrid/colors/minimap.html | 3891 ++++++++++++++ frontend/imgrid/colors/minoan.gif | Bin 0 -> 16077 bytes frontend/imgrid/colors/savior.html | 3582 +++++++++++++ frontend/imgrid/colors/test.html | 56 + frontend/imgrid/colors/vase.gif | Bin 0 -> 8214 bytes frontend/imgrid/colors/vase.png | Bin 0 -> 9650 bytes frontend/imgrid/colors/vaseshim.png | Bin 0 -> 508 bytes frontend/imgrid/colors/whiteshim.png | Bin 0 -> 395 bytes frontend/imgrid/css/cssreset.css | 7 + frontend/imgrid/css/general.css | 91 + frontend/imgrid/css/jquery-ui-1.8.16.custom.css | 313 ++ .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 159 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes .../smoothness/images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes .../smoothness/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../smoothness/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../smoothness/images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes .../smoothness/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../css/smoothness/jquery-ui-1.8.16.custom.css | 313 ++ frontend/imgrid/dist/3dmap.jar | Bin 0 -> 42525 bytes frontend/imgrid/dist/3dmap.jnlp | 38 + frontend/imgrid/dist/deployment/v1/gluegen-rt.jnlp | 63 + .../dist/deployment/v1/jar/applet-launcher.jar | Bin 0 -> 65584 bytes .../v1/jar/gluegen-rt-natives-linux-amd64.jar | Bin 0 -> 8213 bytes .../v1/jar/gluegen-rt-natives-linux-i586.jar | Bin 0 -> 8086 bytes .../v1/jar/gluegen-rt-natives-macosx-ppc.jar | Bin 0 -> 7167 bytes .../v1/jar/gluegen-rt-natives-macosx-universal.jar | Bin 0 -> 8474 bytes .../v1/jar/gluegen-rt-natives-solaris-amd64.jar | Bin 0 -> 8116 bytes .../v1/jar/gluegen-rt-natives-solaris-i586.jar | Bin 0 -> 7909 bytes .../v1/jar/gluegen-rt-natives-solaris-sparc.jar | Bin 0 -> 8345 bytes .../v1/jar/gluegen-rt-natives-solaris-sparcv9.jar | Bin 0 -> 8456 bytes .../v1/jar/gluegen-rt-natives-windows-amd64.jar | Bin 0 -> 8275 bytes .../v1/jar/gluegen-rt-natives-windows-i586.jar | Bin 0 -> 6783 bytes .../imgrid/dist/deployment/v1/jar/gluegen-rt.jar | Bin 0 -> 25059 bytes .../deployment/v1/jar/jogl-natives-linux-amd64.jar | Bin 0 -> 253122 bytes .../deployment/v1/jar/jogl-natives-linux-i586.jar | Bin 0 -> 228834 bytes .../deployment/v1/jar/jogl-natives-macosx-ppc.jar | Bin 0 -> 136490 bytes .../v1/jar/jogl-natives-macosx-universal.jar | Bin 0 -> 444191 bytes .../v1/jar/jogl-natives-solaris-amd64.jar | Bin 0 -> 191870 bytes .../v1/jar/jogl-natives-solaris-i586.jar | Bin 0 -> 234616 bytes .../v1/jar/jogl-natives-solaris-sparc.jar | Bin 0 -> 225183 bytes .../v1/jar/jogl-natives-solaris-sparcv9.jar | Bin 0 -> 214380 bytes .../v1/jar/jogl-natives-windows-amd64.jar | Bin 0 -> 77832 bytes .../v1/jar/jogl-natives-windows-i586.jar | Bin 0 -> 62493 bytes frontend/imgrid/dist/deployment/v1/jar/jogl.jar | Bin 0 -> 1174256 bytes frontend/imgrid/dist/deployment/v1/jar/testKeys | Bin 0 -> 1289 bytes frontend/imgrid/dist/deployment/v1/jogl-awt.jnlp | 71 + frontend/imgrid/dist/http/commons-codec-1.4.jar | Bin 0 -> 62139 bytes .../imgrid/dist/http/commons-logging-1.1.1.jar | Bin 0 -> 64455 bytes frontend/imgrid/dist/http/httpclient-4.1.2.jar | Bin 0 -> 376114 bytes .../imgrid/dist/http/httpclient-cache-4.1.2.jar | Bin 0 -> 111811 bytes frontend/imgrid/dist/http/httpcore-4.1.2.jar | Bin 0 -> 195688 bytes frontend/imgrid/dist/http/httpmime-4.1.2.jar | Bin 0 -> 29817 bytes frontend/imgrid/dist/http/plugin.jar | Bin 0 -> 1778787 bytes frontend/imgrid/dist/index.html | 24 + frontend/imgrid/dist/temp/HeightMap.jpg | Bin 0 -> 2779 bytes frontend/imgrid/dist/temp/Texture.jpg | Bin 0 -> 12198 bytes frontend/imgrid/dist/testKeys | Bin 0 -> 1289 bytes frontend/imgrid/dist_embedded/3DMapAllWin.jar | Bin 0 -> 5018834 bytes frontend/imgrid/dist_embedded/index.html | 16 + frontend/imgrid/favicon.ico | Bin 0 -> 1406 bytes frontend/imgrid/greatgrids/blackplant.png | Bin 0 -> 64921 bytes frontend/imgrid/greatgrids/copy.html | 327 ++ frontend/imgrid/greatgrids/facebookimage.jpg | Bin 0 -> 20532 bytes frontend/imgrid/greatgrids/facebookimage.png | Bin 0 -> 72703 bytes frontend/imgrid/greatgrids/gallery.html | 404 ++ frontend/imgrid/greatgrids/greatgrids.ico | Bin 0 -> 12606 bytes frontend/imgrid/greatgrids/grids.ico | Bin 0 -> 3658 bytes frontend/imgrid/greatgrids/grids.png | Bin 0 -> 1379 bytes frontend/imgrid/greatgrids/hey.html | 300 ++ frontend/imgrid/greatgrids/images/LaL1S.jpg | Bin 0 -> 105785 bytes frontend/imgrid/greatgrids/images/gg1.png | Bin 0 -> 266089 bytes frontend/imgrid/greatgrids/images/gg2.png | Bin 0 -> 965977 bytes frontend/imgrid/greatgrids/images/gg3.png | Bin 0 -> 934098 bytes frontend/imgrid/greatgrids/images/gg4.png | Bin 0 -> 645523 bytes frontend/imgrid/greatgrids/images/gg5.png | Bin 0 -> 382033 bytes frontend/imgrid/greatgrids/images/gg6.png | Bin 0 -> 676701 bytes frontend/imgrid/greatgrids/images/gg7.png | Bin 0 -> 69309 bytes frontend/imgrid/greatgrids/images/gg8.jpg | Bin 0 -> 105785 bytes frontend/imgrid/greatgrids/images/gg8.png | Bin 0 -> 450435 bytes frontend/imgrid/greatgrids/index.html | 430 ++ frontend/imgrid/greatgrids/plain.html | 28 + frontend/imgrid/greatgrids/screen.html | 400 ++ frontend/imgrid/greatgrids/tinybackground.gif | Bin 0 -> 52 bytes frontend/imgrid/greatgrids/tinybackground2.gif | Bin 0 -> 54 bytes frontend/imgrid/img/athenafinal.gif | Bin 0 -> 5831355 bytes frontend/imgrid/img/background.gif | Bin 0 -> 189710 bytes frontend/imgrid/img/blackplant.png | Bin 0 -> 64921 bytes frontend/imgrid/img/blackplant2.png | Bin 0 -> 49197 bytes frontend/imgrid/img/blackplant3.png | Bin 0 -> 90183 bytes frontend/imgrid/img/bros.png | Bin 0 -> 284120 bytes frontend/imgrid/img/facebookimage.png | Bin 0 -> 5694 bytes frontend/imgrid/img/generating.gif | Bin 0 -> 6679 bytes frontend/imgrid/img/harrisbros.png | Bin 0 -> 284176 bytes frontend/imgrid/img/imgrid.png | Bin 0 -> 171444 bytes frontend/imgrid/img/oldathena.gif | Bin 0 -> 1007360 bytes frontend/imgrid/img/test.gif | Bin 0 -> 138525 bytes frontend/imgrid/img/thatbackground.gif | Bin 0 -> 110 bytes frontend/imgrid/index.html | 484 ++ frontend/imgrid/indexOLD.html | 140 + frontend/imgrid/indexnewold.html | 336 ++ frontend/imgrid/indexold.html | 322 ++ frontend/imgrid/intro.html | 106 + frontend/imgrid/jeremy.html | 398 ++ frontend/imgrid/jmd.html | 346 ++ frontend/imgrid/js/colordictbackup.js | 4 + frontend/imgrid/js/colors_iframe.js | 45 + frontend/imgrid/js/imgrid-main.js | 121 + frontend/imgrid/js/jquery-1.6.4.min.js | 4 + frontend/imgrid/js/jquery-ui-1.8.16.custom.min.js | 84 + frontend/imgrid/js/maincopy.js | 109 + frontend/imgrid/js/popup.js | 69 + frontend/imgrid/js/sliders.js | 83 + frontend/imgrid/old.html | 461 ++ frontend/imgrid/oldindex.html | 307 ++ frontend/imgrid/safety.html | 488 ++ frontend/imgrid/sj6v1.zip | Bin 0 -> 167449 bytes frontend/imlandscape/README.md | 0 frontend/imlandscape/img/Heightmap.jpg | Bin 0 -> 2779 bytes frontend/imlandscape/img/Texture.jpg | Bin 0 -> 12198 bytes frontend/imlandscape/img/generating_background.gif | Bin 0 -> 389693 bytes frontend/imlandscape/index.html | 113 + frontend/imlandscape/js/3D_Landscape.js | 248 + frontend/imlandscape/js/Detector.js | 52 + frontend/imlandscape/js/RequestAnimationFrame.js | 24 + frontend/imlandscape/js/Three.js | 708 +++ frontend/imlandscape/js/generating.js | 8 + frontend/imlandscape/js/jquery.min.js | 4 + frontend/imlandscape/js/keypress.js | 1132 ++++ frontend/imlandscape/js/pb.js | 71 + frontend/imlandscape/js/username.js | 30 + frontend/imlandscape/simple_proxy.py | 29 + frontend/impattern/app.pl | 34 + frontend/impattern/css/main.css | 101 + frontend/impattern/css/normalize.css | 427 ++ frontend/impattern/css/overlay.css | 43 + frontend/impattern/css/result.css | 3 + frontend/impattern/css/sketch.css | 45 + .../impattern/css/unsemantic-grid-responsive.css | 1403 +++++ frontend/impattern/img/brush.png | Bin 0 -> 734 bytes frontend/impattern/img/eraser.png | Bin 0 -> 616 bytes frontend/impattern/img/impattern.png | Bin 0 -> 3577 bytes frontend/impattern/img/loading.gif | Bin 0 -> 135282 bytes frontend/impattern/img/logo.gif | Bin 0 -> 117877 bytes frontend/impattern/impattern.html | 254 + frontend/impattern/index.html | 340 ++ frontend/impattern/js/display_result.js | 1 + frontend/impattern/js/inputs.js | 26 + frontend/impattern/js/jquery.min.js | 18 + frontend/impattern/js/overlay.js | 19 + frontend/impattern/js/preview.js | 47 + frontend/impattern/js/sketch.js | 219 + frontend/impattern/js/urls.js | 3 + frontend/impattern/js/username.js | 30 + frontend/impattern/makePattern.py | 111 + frontend/impattern/myjson.json | 1 + frontend/impattern/newimagefromjson.py | 26 + frontend/impattern/old/bottle.py | 3605 +++++++++++++ frontend/impattern/old/index.html.old | 305 ++ frontend/impattern/old/oldpatterns/1.png | Bin 0 -> 90 bytes frontend/impattern/old/oldpatterns/10.png | Bin 0 -> 2484 bytes frontend/impattern/old/oldpatterns/11.png | Bin 0 -> 2484 bytes frontend/impattern/old/oldpatterns/12.png | Bin 0 -> 2483 bytes frontend/impattern/old/oldpatterns/13.png | Bin 0 -> 2467 bytes frontend/impattern/old/oldpatterns/14.png | Bin 0 -> 2478 bytes frontend/impattern/old/oldpatterns/15.png | Bin 0 -> 2487 bytes frontend/impattern/old/oldpatterns/16.png | Bin 0 -> 2480 bytes frontend/impattern/old/oldpatterns/17.png | Bin 0 -> 2461 bytes frontend/impattern/old/oldpatterns/18.png | Bin 0 -> 2475 bytes frontend/impattern/old/oldpatterns/19.png | Bin 0 -> 2471 bytes frontend/impattern/old/oldpatterns/2.png | Bin 0 -> 2470 bytes frontend/impattern/old/oldpatterns/20.png | Bin 0 -> 2472 bytes frontend/impattern/old/oldpatterns/21.png | Bin 0 -> 2472 bytes frontend/impattern/old/oldpatterns/22.png | Bin 0 -> 2477 bytes frontend/impattern/old/oldpatterns/23.png | Bin 0 -> 2472 bytes frontend/impattern/old/oldpatterns/24.png | Bin 0 -> 2467 bytes frontend/impattern/old/oldpatterns/25.png | Bin 0 -> 2473 bytes frontend/impattern/old/oldpatterns/26.png | Bin 0 -> 2480 bytes frontend/impattern/old/oldpatterns/27.png | Bin 0 -> 2482 bytes frontend/impattern/old/oldpatterns/28.png | Bin 0 -> 2482 bytes frontend/impattern/old/oldpatterns/29.png | Bin 0 -> 2487 bytes frontend/impattern/old/oldpatterns/3.png | Bin 0 -> 2469 bytes frontend/impattern/old/oldpatterns/30.png | Bin 0 -> 2487 bytes frontend/impattern/old/oldpatterns/31.png | Bin 0 -> 2478 bytes frontend/impattern/old/oldpatterns/32.png | Bin 0 -> 2465 bytes frontend/impattern/old/oldpatterns/33.png | Bin 0 -> 2484 bytes frontend/impattern/old/oldpatterns/34.png | Bin 0 -> 2484 bytes frontend/impattern/old/oldpatterns/35.png | Bin 0 -> 2476 bytes frontend/impattern/old/oldpatterns/36.png | Bin 0 -> 2490 bytes frontend/impattern/old/oldpatterns/37.png | Bin 0 -> 2495 bytes frontend/impattern/old/oldpatterns/38.png | Bin 0 -> 2492 bytes frontend/impattern/old/oldpatterns/39.png | Bin 0 -> 2482 bytes frontend/impattern/old/oldpatterns/4.png | Bin 0 -> 2465 bytes frontend/impattern/old/oldpatterns/40.png | Bin 0 -> 2485 bytes frontend/impattern/old/oldpatterns/41.png | Bin 0 -> 2496 bytes frontend/impattern/old/oldpatterns/42.png | Bin 0 -> 2494 bytes frontend/impattern/old/oldpatterns/43.png | Bin 0 -> 2490 bytes frontend/impattern/old/oldpatterns/44.png | Bin 0 -> 2491 bytes frontend/impattern/old/oldpatterns/45.png | Bin 0 -> 2484 bytes frontend/impattern/old/oldpatterns/46.png | Bin 0 -> 2490 bytes frontend/impattern/old/oldpatterns/47.png | Bin 0 -> 2486 bytes frontend/impattern/old/oldpatterns/48.png | Bin 0 -> 2490 bytes frontend/impattern/old/oldpatterns/49.png | Bin 0 -> 2483 bytes frontend/impattern/old/oldpatterns/5.png | Bin 0 -> 2476 bytes frontend/impattern/old/oldpatterns/50.png | Bin 0 -> 2486 bytes frontend/impattern/old/oldpatterns/51.png | Bin 0 -> 2485 bytes frontend/impattern/old/oldpatterns/52.png | Bin 0 -> 2490 bytes frontend/impattern/old/oldpatterns/53.png | Bin 0 -> 2494 bytes frontend/impattern/old/oldpatterns/54.png | Bin 0 -> 2491 bytes frontend/impattern/old/oldpatterns/55.png | Bin 0 -> 2474 bytes frontend/impattern/old/oldpatterns/56.png | Bin 0 -> 2492 bytes frontend/impattern/old/oldpatterns/57.png | Bin 0 -> 2492 bytes frontend/impattern/old/oldpatterns/58.png | Bin 0 -> 2487 bytes frontend/impattern/old/oldpatterns/59.png | Bin 0 -> 2493 bytes frontend/impattern/old/oldpatterns/6.png | Bin 0 -> 2480 bytes frontend/impattern/old/oldpatterns/60.png | Bin 0 -> 2488 bytes frontend/impattern/old/oldpatterns/61.png | Bin 0 -> 2492 bytes frontend/impattern/old/oldpatterns/62.png | Bin 0 -> 2487 bytes frontend/impattern/old/oldpatterns/63.png | Bin 0 -> 2494 bytes frontend/impattern/old/oldpatterns/64.png | Bin 0 -> 2487 bytes frontend/impattern/old/oldpatterns/65.png | Bin 0 -> 2467 bytes frontend/impattern/old/oldpatterns/66.png | Bin 0 -> 2471 bytes frontend/impattern/old/oldpatterns/67.png | Bin 0 -> 2470 bytes frontend/impattern/old/oldpatterns/68.png | Bin 0 -> 2471 bytes frontend/impattern/old/oldpatterns/69.png | Bin 0 -> 2470 bytes frontend/impattern/old/oldpatterns/7.png | Bin 0 -> 2474 bytes frontend/impattern/old/oldpatterns/70.png | Bin 0 -> 2473 bytes frontend/impattern/old/oldpatterns/71.png | Bin 0 -> 2477 bytes frontend/impattern/old/oldpatterns/72.png | Bin 0 -> 2476 bytes frontend/impattern/old/oldpatterns/73.png | Bin 0 -> 2484 bytes frontend/impattern/old/oldpatterns/74.png | Bin 0 -> 2486 bytes frontend/impattern/old/oldpatterns/75.png | Bin 0 -> 2490 bytes frontend/impattern/old/oldpatterns/76.png | Bin 0 -> 2484 bytes frontend/impattern/old/oldpatterns/77.png | Bin 0 -> 2492 bytes frontend/impattern/old/oldpatterns/78.png | Bin 0 -> 2491 bytes frontend/impattern/old/oldpatterns/79.png | Bin 0 -> 2496 bytes frontend/impattern/old/oldpatterns/8.png | Bin 0 -> 2476 bytes frontend/impattern/old/oldpatterns/80.png | Bin 0 -> 2493 bytes frontend/impattern/old/oldpatterns/81.png | Bin 0 -> 2462 bytes frontend/impattern/old/oldpatterns/82.png | Bin 0 -> 2472 bytes frontend/impattern/old/oldpatterns/83.png | Bin 0 -> 2462 bytes frontend/impattern/old/oldpatterns/84.png | Bin 0 -> 2467 bytes frontend/impattern/old/oldpatterns/85.png | Bin 0 -> 2462 bytes frontend/impattern/old/oldpatterns/86.png | Bin 0 -> 2468 bytes frontend/impattern/old/oldpatterns/87.png | Bin 0 -> 2472 bytes frontend/impattern/old/oldpatterns/88.png | Bin 0 -> 2475 bytes frontend/impattern/old/oldpatterns/89.png | Bin 0 -> 2467 bytes frontend/impattern/old/oldpatterns/9.png | Bin 0 -> 2477 bytes frontend/impattern/old/oldpatterns/90.png | Bin 0 -> 2471 bytes frontend/impattern/old/oldpatterns/91.png | Bin 0 -> 2467 bytes frontend/impattern/old/oldpatterns/92.png | Bin 0 -> 2470 bytes frontend/impattern/old/oldpatterns/93.png | Bin 0 -> 2483 bytes frontend/impattern/old/oldpatterns/94.png | Bin 0 -> 2485 bytes frontend/impattern/old/oldpatterns/95.png | Bin 0 -> 2485 bytes frontend/impattern/old/oldpatterns/96.png | Bin 0 -> 2477 bytes frontend/impattern/old/oldpatterns/a0.png | Bin 0 -> 138 bytes frontend/impattern/old/oldpatterns/a1.png | Bin 0 -> 122 bytes frontend/impattern/old/oldpatterns/a10.png | Bin 0 -> 129 bytes frontend/impattern/old/oldpatterns/a11.png | Bin 0 -> 138 bytes frontend/impattern/old/oldpatterns/a12.png | Bin 0 -> 125 bytes frontend/impattern/old/oldpatterns/a13.png | Bin 0 -> 132 bytes frontend/impattern/old/oldpatterns/a14.png | Bin 0 -> 91 bytes frontend/impattern/old/oldpatterns/a15.png | Bin 0 -> 143 bytes frontend/impattern/old/oldpatterns/a16.png | Bin 0 -> 87 bytes frontend/impattern/old/oldpatterns/a17.png | Bin 0 -> 93 bytes frontend/impattern/old/oldpatterns/a18.png | Bin 0 -> 163 bytes frontend/impattern/old/oldpatterns/a19.png | Bin 0 -> 119 bytes frontend/impattern/old/oldpatterns/a2.png | Bin 0 -> 123 bytes frontend/impattern/old/oldpatterns/a20.png | Bin 0 -> 83 bytes frontend/impattern/old/oldpatterns/a21.png | Bin 0 -> 111 bytes frontend/impattern/old/oldpatterns/a22.png | Bin 0 -> 137 bytes frontend/impattern/old/oldpatterns/a23.png | Bin 0 -> 116 bytes frontend/impattern/old/oldpatterns/a24.png | Bin 0 -> 96 bytes frontend/impattern/old/oldpatterns/a25.png | Bin 0 -> 108 bytes frontend/impattern/old/oldpatterns/a26.png | Bin 0 -> 138 bytes frontend/impattern/old/oldpatterns/a27.png | Bin 0 -> 108 bytes frontend/impattern/old/oldpatterns/a28.png | Bin 0 -> 115 bytes frontend/impattern/old/oldpatterns/a29.png | Bin 0 -> 93 bytes frontend/impattern/old/oldpatterns/a3.png | Bin 0 -> 124 bytes frontend/impattern/old/oldpatterns/a30.png | Bin 0 -> 88 bytes frontend/impattern/old/oldpatterns/a31.png | Bin 0 -> 114 bytes frontend/impattern/old/oldpatterns/a32.png | Bin 0 -> 139 bytes frontend/impattern/old/oldpatterns/a33.png | Bin 0 -> 127 bytes frontend/impattern/old/oldpatterns/a34.png | Bin 0 -> 92 bytes frontend/impattern/old/oldpatterns/a35.png | Bin 0 -> 91 bytes frontend/impattern/old/oldpatterns/a36.png | Bin 0 -> 87 bytes frontend/impattern/old/oldpatterns/a37.png | Bin 0 -> 89 bytes frontend/impattern/old/oldpatterns/a38.png | Bin 0 -> 83 bytes frontend/impattern/old/oldpatterns/a39.png | Bin 0 -> 132 bytes frontend/impattern/old/oldpatterns/a4.png | Bin 0 -> 92 bytes frontend/impattern/old/oldpatterns/a40.png | Bin 0 -> 138 bytes frontend/impattern/old/oldpatterns/a41.png | Bin 0 -> 113 bytes frontend/impattern/old/oldpatterns/a5.png | Bin 0 -> 120 bytes frontend/impattern/old/oldpatterns/a6.png | Bin 0 -> 105 bytes frontend/impattern/old/oldpatterns/a7.png | Bin 0 -> 106 bytes frontend/impattern/old/oldpatterns/a8.png | Bin 0 -> 110 bytes frontend/impattern/old/oldpatterns/a9.png | Bin 0 -> 110 bytes frontend/impattern/other_script.py | 90 + frontend/impattern/patterns/1.png | Bin 0 -> 250 bytes frontend/impattern/patterns/10.png | Bin 0 -> 249 bytes frontend/impattern/patterns/11.png | Bin 0 -> 249 bytes frontend/impattern/patterns/12.png | Bin 0 -> 249 bytes frontend/impattern/patterns/13.png | Bin 0 -> 243 bytes frontend/impattern/patterns/14.png | Bin 0 -> 246 bytes frontend/impattern/patterns/15.png | Bin 0 -> 249 bytes frontend/impattern/patterns/16.png | Bin 0 -> 245 bytes frontend/impattern/patterns/17.png | Bin 0 -> 244 bytes frontend/impattern/patterns/18.png | Bin 0 -> 246 bytes frontend/impattern/patterns/19.png | Bin 0 -> 249 bytes frontend/impattern/patterns/2.png | Bin 0 -> 243 bytes frontend/impattern/patterns/20.png | Bin 0 -> 243 bytes frontend/impattern/patterns/21.png | Bin 0 -> 248 bytes frontend/impattern/patterns/22.png | Bin 0 -> 248 bytes frontend/impattern/patterns/23.png | Bin 0 -> 248 bytes frontend/impattern/patterns/24.png | Bin 0 -> 243 bytes frontend/impattern/patterns/25.png | Bin 0 -> 248 bytes frontend/impattern/patterns/26.png | Bin 0 -> 248 bytes frontend/impattern/patterns/27.png | Bin 0 -> 248 bytes frontend/impattern/patterns/28.png | Bin 0 -> 243 bytes frontend/impattern/patterns/29.png | Bin 0 -> 249 bytes frontend/impattern/patterns/3.png | Bin 0 -> 246 bytes frontend/impattern/patterns/30.png | Bin 0 -> 246 bytes frontend/impattern/patterns/31.png | Bin 0 -> 246 bytes frontend/impattern/patterns/32.png | Bin 0 -> 241 bytes frontend/impattern/patterns/33.png | Bin 0 -> 246 bytes frontend/impattern/patterns/34.png | Bin 0 -> 248 bytes frontend/impattern/patterns/35.png | Bin 0 -> 244 bytes frontend/impattern/patterns/36.png | Bin 0 -> 251 bytes frontend/impattern/patterns/37.png | Bin 0 -> 253 bytes frontend/impattern/patterns/38.png | Bin 0 -> 253 bytes frontend/impattern/patterns/39.png | Bin 0 -> 247 bytes frontend/impattern/patterns/4.png | Bin 0 -> 243 bytes frontend/impattern/patterns/40.png | Bin 0 -> 254 bytes frontend/impattern/patterns/41.png | Bin 0 -> 253 bytes frontend/impattern/patterns/42.png | Bin 0 -> 252 bytes frontend/impattern/patterns/43.png | Bin 0 -> 252 bytes frontend/impattern/patterns/44.png | Bin 0 -> 251 bytes frontend/impattern/patterns/45.png | Bin 0 -> 247 bytes frontend/impattern/patterns/46.png | Bin 0 -> 252 bytes frontend/impattern/patterns/47.png | Bin 0 -> 251 bytes frontend/impattern/patterns/48.png | Bin 0 -> 249 bytes frontend/impattern/patterns/49.png | Bin 0 -> 245 bytes frontend/impattern/patterns/5.png | Bin 0 -> 249 bytes frontend/impattern/patterns/50.png | Bin 0 -> 248 bytes frontend/impattern/patterns/51.png | Bin 0 -> 246 bytes frontend/impattern/patterns/52.png | Bin 0 -> 252 bytes frontend/impattern/patterns/53.png | Bin 0 -> 254 bytes frontend/impattern/patterns/54.png | Bin 0 -> 253 bytes frontend/impattern/patterns/55.png | Bin 0 -> 247 bytes frontend/impattern/patterns/56.png | Bin 0 -> 250 bytes frontend/impattern/patterns/57.png | Bin 0 -> 253 bytes frontend/impattern/patterns/58.png | Bin 0 -> 250 bytes frontend/impattern/patterns/59.png | Bin 0 -> 252 bytes frontend/impattern/patterns/6.png | Bin 0 -> 249 bytes frontend/impattern/patterns/60.png | Bin 0 -> 248 bytes frontend/impattern/patterns/61.png | Bin 0 -> 252 bytes frontend/impattern/patterns/62.png | Bin 0 -> 248 bytes frontend/impattern/patterns/63.png | Bin 0 -> 252 bytes frontend/impattern/patterns/64.png | Bin 0 -> 247 bytes frontend/impattern/patterns/65.png | Bin 0 -> 241 bytes frontend/impattern/patterns/66.png | Bin 0 -> 241 bytes frontend/impattern/patterns/67.png | Bin 0 -> 244 bytes frontend/impattern/patterns/68.png | Bin 0 -> 241 bytes frontend/impattern/patterns/69.png | Bin 0 -> 244 bytes frontend/impattern/patterns/7.png | Bin 0 -> 249 bytes frontend/impattern/patterns/70.png | Bin 0 -> 241 bytes frontend/impattern/patterns/71.png | Bin 0 -> 244 bytes frontend/impattern/patterns/72.png | Bin 0 -> 244 bytes frontend/impattern/patterns/73.png | Bin 0 -> 248 bytes frontend/impattern/patterns/74.png | Bin 0 -> 248 bytes frontend/impattern/patterns/75.png | Bin 0 -> 254 bytes frontend/impattern/patterns/76.png | Bin 0 -> 254 bytes frontend/impattern/patterns/77.png | Bin 0 -> 253 bytes frontend/impattern/patterns/78.png | Bin 0 -> 253 bytes frontend/impattern/patterns/79.png | Bin 0 -> 251 bytes frontend/impattern/patterns/8.png | Bin 0 -> 249 bytes frontend/impattern/patterns/80.png | Bin 0 -> 252 bytes frontend/impattern/patterns/81.png | Bin 0 -> 243 bytes frontend/impattern/patterns/82.png | Bin 0 -> 241 bytes frontend/impattern/patterns/83.png | Bin 0 -> 243 bytes frontend/impattern/patterns/84.png | Bin 0 -> 241 bytes frontend/impattern/patterns/85.png | Bin 0 -> 243 bytes frontend/impattern/patterns/86.png | Bin 0 -> 244 bytes frontend/impattern/patterns/87.png | Bin 0 -> 244 bytes frontend/impattern/patterns/88.png | Bin 0 -> 244 bytes frontend/impattern/patterns/89.png | Bin 0 -> 247 bytes frontend/impattern/patterns/9.png | Bin 0 -> 249 bytes frontend/impattern/patterns/90.png | Bin 0 -> 247 bytes frontend/impattern/patterns/91.png | Bin 0 -> 253 bytes frontend/impattern/patterns/92.png | Bin 0 -> 253 bytes frontend/impattern/patterns/93.png | Bin 0 -> 248 bytes frontend/impattern/patterns/94.png | Bin 0 -> 248 bytes frontend/impattern/patterns/95.png | Bin 0 -> 250 bytes frontend/impattern/patterns/96.png | Bin 0 -> 251 bytes frontend/impattern/patterns/a0.png | Bin 0 -> 266 bytes frontend/impattern/patterns/a1.png | Bin 0 -> 266 bytes frontend/impattern/patterns/a10.png | Bin 0 -> 264 bytes frontend/impattern/patterns/a11.png | Bin 0 -> 268 bytes frontend/impattern/patterns/a12.png | Bin 0 -> 265 bytes frontend/impattern/patterns/a13.png | Bin 0 -> 267 bytes frontend/impattern/patterns/a14.png | Bin 0 -> 246 bytes frontend/impattern/patterns/a15.png | Bin 0 -> 267 bytes frontend/impattern/patterns/a16.png | Bin 0 -> 245 bytes frontend/impattern/patterns/a17.png | Bin 0 -> 247 bytes frontend/impattern/patterns/a18.png | Bin 0 -> 275 bytes frontend/impattern/patterns/a19.png | Bin 0 -> 261 bytes frontend/impattern/patterns/a2.png | Bin 0 -> 264 bytes frontend/impattern/patterns/a20.png | Bin 0 -> 245 bytes frontend/impattern/patterns/a21.png | Bin 0 -> 260 bytes frontend/impattern/patterns/a22.png | Bin 0 -> 272 bytes frontend/impattern/patterns/a23.png | Bin 0 -> 256 bytes frontend/impattern/patterns/a24.png | Bin 0 -> 249 bytes frontend/impattern/patterns/a25.png | Bin 0 -> 254 bytes frontend/impattern/patterns/a26.png | Bin 0 -> 266 bytes frontend/impattern/patterns/a27.png | Bin 0 -> 253 bytes frontend/impattern/patterns/a28.png | Bin 0 -> 256 bytes frontend/impattern/patterns/a29.png | Bin 0 -> 247 bytes frontend/impattern/patterns/a3.png | Bin 0 -> 263 bytes frontend/impattern/patterns/a30.png | Bin 0 -> 247 bytes frontend/impattern/patterns/a31.png | Bin 0 -> 265 bytes frontend/impattern/patterns/a32.png | Bin 0 -> 265 bytes frontend/impattern/patterns/a33.png | Bin 0 -> 264 bytes frontend/impattern/patterns/a34.png | Bin 0 -> 245 bytes frontend/impattern/patterns/a35.png | Bin 0 -> 248 bytes frontend/impattern/patterns/a36.png | Bin 0 -> 246 bytes frontend/impattern/patterns/a37.png | Bin 0 -> 246 bytes frontend/impattern/patterns/a38.png | Bin 0 -> 243 bytes frontend/impattern/patterns/a39.png | Bin 0 -> 268 bytes frontend/impattern/patterns/a4.png | Bin 0 -> 247 bytes frontend/impattern/patterns/a40.png | Bin 0 -> 267 bytes frontend/impattern/patterns/a41.png | Bin 0 -> 258 bytes frontend/impattern/patterns/a5.png | Bin 0 -> 262 bytes frontend/impattern/patterns/a6.png | Bin 0 -> 257 bytes frontend/impattern/patterns/a7.png | Bin 0 -> 258 bytes frontend/impattern/patterns/a8.png | Bin 0 -> 256 bytes frontend/impattern/patterns/a9.png | Bin 0 -> 255 bytes frontend/impattern/semi_patterns/1.png | Bin 0 -> 90 bytes frontend/impattern/semi_patterns/10.png | Bin 0 -> 2484 bytes frontend/impattern/semi_patterns/11.png | Bin 0 -> 2484 bytes frontend/impattern/semi_patterns/12.png | Bin 0 -> 2483 bytes frontend/impattern/semi_patterns/13.png | Bin 0 -> 2467 bytes frontend/impattern/semi_patterns/14.png | Bin 0 -> 2478 bytes frontend/impattern/semi_patterns/15.png | Bin 0 -> 2487 bytes frontend/impattern/semi_patterns/16.png | Bin 0 -> 2480 bytes frontend/impattern/semi_patterns/17.png | Bin 0 -> 2461 bytes frontend/impattern/semi_patterns/18.png | Bin 0 -> 2475 bytes frontend/impattern/semi_patterns/19.png | Bin 0 -> 2471 bytes frontend/impattern/semi_patterns/2.png | Bin 0 -> 2470 bytes frontend/impattern/semi_patterns/20.png | Bin 0 -> 2472 bytes frontend/impattern/semi_patterns/21.png | Bin 0 -> 2472 bytes frontend/impattern/semi_patterns/22.png | Bin 0 -> 2477 bytes frontend/impattern/semi_patterns/23.png | Bin 0 -> 2472 bytes frontend/impattern/semi_patterns/24.png | Bin 0 -> 2467 bytes frontend/impattern/semi_patterns/25.png | Bin 0 -> 2473 bytes frontend/impattern/semi_patterns/26.png | Bin 0 -> 2480 bytes frontend/impattern/semi_patterns/27.png | Bin 0 -> 2482 bytes frontend/impattern/semi_patterns/28.png | Bin 0 -> 2482 bytes frontend/impattern/semi_patterns/29.png | Bin 0 -> 2487 bytes frontend/impattern/semi_patterns/3.png | Bin 0 -> 2469 bytes frontend/impattern/semi_patterns/30.png | Bin 0 -> 2487 bytes frontend/impattern/semi_patterns/31.png | Bin 0 -> 2478 bytes frontend/impattern/semi_patterns/32.png | Bin 0 -> 2465 bytes frontend/impattern/semi_patterns/33.png | Bin 0 -> 2484 bytes frontend/impattern/semi_patterns/34.png | Bin 0 -> 2484 bytes frontend/impattern/semi_patterns/35.png | Bin 0 -> 2476 bytes frontend/impattern/semi_patterns/36.png | Bin 0 -> 2490 bytes frontend/impattern/semi_patterns/37.png | Bin 0 -> 2495 bytes frontend/impattern/semi_patterns/38.png | Bin 0 -> 2492 bytes frontend/impattern/semi_patterns/39.png | Bin 0 -> 2482 bytes frontend/impattern/semi_patterns/4.png | Bin 0 -> 2465 bytes frontend/impattern/semi_patterns/40.png | Bin 0 -> 2485 bytes frontend/impattern/semi_patterns/41.png | Bin 0 -> 2496 bytes frontend/impattern/semi_patterns/42.png | Bin 0 -> 2494 bytes frontend/impattern/semi_patterns/43.png | Bin 0 -> 2490 bytes frontend/impattern/semi_patterns/44.png | Bin 0 -> 2491 bytes frontend/impattern/semi_patterns/45.png | Bin 0 -> 2484 bytes frontend/impattern/semi_patterns/46.png | Bin 0 -> 2490 bytes frontend/impattern/semi_patterns/47.png | Bin 0 -> 2486 bytes frontend/impattern/semi_patterns/48.png | Bin 0 -> 2490 bytes frontend/impattern/semi_patterns/49.png | Bin 0 -> 2483 bytes frontend/impattern/semi_patterns/5.png | Bin 0 -> 2476 bytes frontend/impattern/semi_patterns/50.png | Bin 0 -> 2486 bytes frontend/impattern/semi_patterns/51.png | Bin 0 -> 2485 bytes frontend/impattern/semi_patterns/52.png | Bin 0 -> 2490 bytes frontend/impattern/semi_patterns/53.png | Bin 0 -> 2494 bytes frontend/impattern/semi_patterns/54.png | Bin 0 -> 2491 bytes frontend/impattern/semi_patterns/55.png | Bin 0 -> 2474 bytes frontend/impattern/semi_patterns/56.png | Bin 0 -> 2492 bytes frontend/impattern/semi_patterns/57.png | Bin 0 -> 2492 bytes frontend/impattern/semi_patterns/58.png | Bin 0 -> 2487 bytes frontend/impattern/semi_patterns/59.png | Bin 0 -> 2493 bytes frontend/impattern/semi_patterns/6.png | Bin 0 -> 2480 bytes frontend/impattern/semi_patterns/60.png | Bin 0 -> 2488 bytes frontend/impattern/semi_patterns/61.png | Bin 0 -> 2492 bytes frontend/impattern/semi_patterns/62.png | Bin 0 -> 2487 bytes frontend/impattern/semi_patterns/63.png | Bin 0 -> 2494 bytes frontend/impattern/semi_patterns/64.png | Bin 0 -> 2487 bytes frontend/impattern/semi_patterns/65.png | Bin 0 -> 2467 bytes frontend/impattern/semi_patterns/66.png | Bin 0 -> 2471 bytes frontend/impattern/semi_patterns/67.png | Bin 0 -> 2470 bytes frontend/impattern/semi_patterns/68.png | Bin 0 -> 2471 bytes frontend/impattern/semi_patterns/69.png | Bin 0 -> 2470 bytes frontend/impattern/semi_patterns/7.png | Bin 0 -> 2474 bytes frontend/impattern/semi_patterns/70.png | Bin 0 -> 2473 bytes frontend/impattern/semi_patterns/71.png | Bin 0 -> 2477 bytes frontend/impattern/semi_patterns/72.png | Bin 0 -> 2476 bytes frontend/impattern/semi_patterns/73.png | Bin 0 -> 2484 bytes frontend/impattern/semi_patterns/74.png | Bin 0 -> 2486 bytes frontend/impattern/semi_patterns/75.png | Bin 0 -> 2490 bytes frontend/impattern/semi_patterns/76.png | Bin 0 -> 2484 bytes frontend/impattern/semi_patterns/77.png | Bin 0 -> 2492 bytes frontend/impattern/semi_patterns/78.png | Bin 0 -> 2491 bytes frontend/impattern/semi_patterns/79.png | Bin 0 -> 2496 bytes frontend/impattern/semi_patterns/8.png | Bin 0 -> 2476 bytes frontend/impattern/semi_patterns/80.png | Bin 0 -> 2493 bytes frontend/impattern/semi_patterns/81.png | Bin 0 -> 2462 bytes frontend/impattern/semi_patterns/82.png | Bin 0 -> 2472 bytes frontend/impattern/semi_patterns/83.png | Bin 0 -> 2462 bytes frontend/impattern/semi_patterns/84.png | Bin 0 -> 2467 bytes frontend/impattern/semi_patterns/85.png | Bin 0 -> 2462 bytes frontend/impattern/semi_patterns/86.png | Bin 0 -> 2468 bytes frontend/impattern/semi_patterns/87.png | Bin 0 -> 2472 bytes frontend/impattern/semi_patterns/88.png | Bin 0 -> 2475 bytes frontend/impattern/semi_patterns/89.png | Bin 0 -> 2467 bytes frontend/impattern/semi_patterns/9.png | Bin 0 -> 2477 bytes frontend/impattern/semi_patterns/90.png | Bin 0 -> 2471 bytes frontend/impattern/semi_patterns/91.png | Bin 0 -> 2467 bytes frontend/impattern/semi_patterns/92.png | Bin 0 -> 2470 bytes frontend/impattern/semi_patterns/93.png | Bin 0 -> 2483 bytes frontend/impattern/semi_patterns/94.png | Bin 0 -> 2485 bytes frontend/impattern/semi_patterns/95.png | Bin 0 -> 2485 bytes frontend/impattern/semi_patterns/96.png | Bin 0 -> 2477 bytes frontend/impattern/semi_patterns/a0.png | Bin 0 -> 138 bytes frontend/impattern/semi_patterns/a1.png | Bin 0 -> 122 bytes frontend/impattern/semi_patterns/a10.png | Bin 0 -> 129 bytes frontend/impattern/semi_patterns/a11.png | Bin 0 -> 138 bytes frontend/impattern/semi_patterns/a12.png | Bin 0 -> 125 bytes frontend/impattern/semi_patterns/a13.png | Bin 0 -> 132 bytes frontend/impattern/semi_patterns/a14.png | Bin 0 -> 91 bytes frontend/impattern/semi_patterns/a15.png | Bin 0 -> 143 bytes frontend/impattern/semi_patterns/a16.png | Bin 0 -> 87 bytes frontend/impattern/semi_patterns/a17.png | Bin 0 -> 93 bytes frontend/impattern/semi_patterns/a18.png | Bin 0 -> 163 bytes frontend/impattern/semi_patterns/a19.png | Bin 0 -> 119 bytes frontend/impattern/semi_patterns/a2.png | Bin 0 -> 123 bytes frontend/impattern/semi_patterns/a20.png | Bin 0 -> 83 bytes frontend/impattern/semi_patterns/a21.png | Bin 0 -> 111 bytes frontend/impattern/semi_patterns/a22.png | Bin 0 -> 137 bytes frontend/impattern/semi_patterns/a23.png | Bin 0 -> 116 bytes frontend/impattern/semi_patterns/a24.png | Bin 0 -> 96 bytes frontend/impattern/semi_patterns/a25.png | Bin 0 -> 108 bytes frontend/impattern/semi_patterns/a26.png | Bin 0 -> 138 bytes frontend/impattern/semi_patterns/a27.png | Bin 0 -> 108 bytes frontend/impattern/semi_patterns/a28.png | Bin 0 -> 115 bytes frontend/impattern/semi_patterns/a29.png | Bin 0 -> 93 bytes frontend/impattern/semi_patterns/a3.png | Bin 0 -> 124 bytes frontend/impattern/semi_patterns/a30.png | Bin 0 -> 88 bytes frontend/impattern/semi_patterns/a31.png | Bin 0 -> 114 bytes frontend/impattern/semi_patterns/a32.png | Bin 0 -> 139 bytes frontend/impattern/semi_patterns/a33.png | Bin 0 -> 127 bytes frontend/impattern/semi_patterns/a34.png | Bin 0 -> 92 bytes frontend/impattern/semi_patterns/a35.png | Bin 0 -> 91 bytes frontend/impattern/semi_patterns/a36.png | Bin 0 -> 87 bytes frontend/impattern/semi_patterns/a37.png | Bin 0 -> 89 bytes frontend/impattern/semi_patterns/a38.png | Bin 0 -> 83 bytes frontend/impattern/semi_patterns/a39.png | Bin 0 -> 132 bytes frontend/impattern/semi_patterns/a4.png | Bin 0 -> 92 bytes frontend/impattern/semi_patterns/a40.png | Bin 0 -> 138 bytes frontend/impattern/semi_patterns/a41.png | Bin 0 -> 113 bytes frontend/impattern/semi_patterns/a5.png | Bin 0 -> 120 bytes frontend/impattern/semi_patterns/a6.png | Bin 0 -> 105 bytes frontend/impattern/semi_patterns/a7.png | Bin 0 -> 106 bytes frontend/impattern/semi_patterns/a8.png | Bin 0 -> 110 bytes frontend/impattern/semi_patterns/a9.png | Bin 0 -> 110 bytes frontend/impattern/sketch.html | 231 + frontend/impattern/test.gif | Bin 0 -> 1584481 bytes frontend/js/ZeroClipboard.js | 311 ++ frontend/js/colordictbackup.js | 1 + frontend/js/colors_iframe.js | 1 + frontend/js/display_result.js | 1 + frontend/js/gallery_isotope_config.js | 189 + frontend/js/imbreak-main.js | 1 + frontend/js/imgrid-main.js | 1 + frontend/js/index.html | 1 + frontend/js/inputs.js | 1 + frontend/js/jcookie.js | 1 + frontend/js/jquery-1.4.4.min.js | 167 + frontend/js/jquery-1.5.2.min.js | 16 + frontend/js/jquery-1.6.2.min.js | 18 + frontend/js/jquery-1.6.4.min.js | 1 + frontend/js/jquery-1.7.2.min.js | 4 + frontend/js/jquery-ui-1.8.16.custom.min.js | 84 + frontend/js/jquery-ui.min.js | 1 + frontend/js/jquery.cookie.js | 1 + frontend/js/jquery.isotope.min.js | 13 + frontend/js/jquery.js | 4 + frontend/js/jquery.md5.js | 230 + frontend/js/jquery.min.js | 1 + frontend/js/main.js | 1 + frontend/js/maincopy.js | 1 + frontend/js/okgradient-0.1.js | 149 + frontend/js/overlay.js | 1 + frontend/js/pbembed.js | 65 + frontend/js/photoblaster-0.1.js | 22 + frontend/js/popup.js | 1 + frontend/js/preview.js | 1 + frontend/js/requests.js | 6 + frontend/js/sketch.js | 1 + frontend/js/sliders.js | 1 + frontend/js/soundmanager2.js | 2838 ++++++++++ frontend/js/titleScrambler.js | 56 + frontend/js/urls.js | 1 + frontend/js/username.js | 1 + frontend/js/what.html | 7 + frontend/js/zepto-0.7.zip | Bin 0 -> 71083 bytes frontend/js/zepto.js | 4 + frontend/server/simple_proxy.py | 27 + 991 files changed, 126582 insertions(+) create mode 120000 frontend/css/cssreset.css create mode 120000 frontend/css/general.css create mode 120000 frontend/css/images create mode 120000 frontend/css/jquery-ui-1.8.16.custom.css create mode 120000 frontend/css/main.css create mode 120000 frontend/css/normalize.css create mode 120000 frontend/css/overlay.css create mode 120000 frontend/css/result.css create mode 120000 frontend/css/sketch.css create mode 120000 frontend/css/smoothness: create mode 120000 frontend/css/unsemantic-grid-responsive.css create mode 100755 frontend/im/#ffdead-black_1319995689.jpg create mode 100755 frontend/im/.htaccess create mode 100755 frontend/im/1327390579392dumpfmfrankhatscolor2tablet_1327477683_1327478593_1327480237.gif create mode 100755 frontend/im/HTACCESS create mode 100644 frontend/im/OLD/01/_1424365694_frankhats.gif create mode 100644 frontend/im/OLD/13/imgrid_1424839118_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/26/imgrid_1424839138_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/2a/imgrid_1424839194_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/37/imBreak_1424908970_xx_abridged___.gif create mode 100644 frontend/im/OLD/3a/imgrid_1424839041_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/61/imgrid_1424839095_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/61/imgrid_1424839214_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/71/imgrid_1424839153_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/8c/_1424361556_dvvidpw.gif create mode 100644 frontend/im/OLD/91/imgrid_1424839066_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/9f/imgrid_1424839118_pepper.png create mode 100644 frontend/im/OLD/ba/imBreak_1424908974_xx_abridged___.gif create mode 100644 frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365488_mmi.gif create mode 100644 frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365545_mmi.gif create mode 100644 frontend/im/OLD/bc/new_1424372778.gif create mode 100644 frontend/im/OLD/bc/new_1424372876.gif create mode 100644 frontend/im/OLD/cf/imgrid_1424839174_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100755 frontend/im/OLD/clearthedirectories create mode 100644 frontend/im/OLD/d8/imgrid_1424839121_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/e6/imBreak_1424908981_xx_abridged___.gif create mode 100644 frontend/im/OLD/e9/_1424362273_dvvidpw.gif create mode 100644 frontend/im/OLD/ec/imgrid_1424839230_imgrid_1424839001_ymba2ut_pepper_pepper.png create mode 100644 frontend/im/OLD/f8/_1424370030.gif create mode 100755 frontend/im/THEHTACCESS create mode 100755 frontend/im/api.html create mode 100755 frontend/im/arrow_pointing_left.png create mode 100755 frontend/im/asdf.html create mode 100755 frontend/im/colors.html create mode 100644 frontend/im/colors/css/jquery.fancybox.css create mode 100644 frontend/im/colors/css/style.css create mode 100644 frontend/im/colors/iframe.js create mode 100644 frontend/im/colors/images/Thumbs.db create mode 100644 frontend/im/colors/images/bg.dither.gif create mode 100644 frontend/im/colors/images/blank.gif create mode 100644 frontend/im/colors/images/fancybox_loading.gif create mode 100644 frontend/im/colors/images/fancybox_loading@2x.gif create mode 100644 frontend/im/colors/images/fancybox_overlay.png create mode 100644 frontend/im/colors/images/fancybox_sprite.png create mode 100644 frontend/im/colors/images/fancybox_sprite@2x.png create mode 100644 frontend/im/colors/images/gradient.jpg create mode 100644 frontend/im/colors/images/hoverbackground.jpg create mode 100644 frontend/im/colors/images/imcupbg.jpg create mode 100644 frontend/im/colors/images/user_convo.png create mode 100644 frontend/im/colors/images/vase.png create mode 100644 frontend/im/colors/images/vaseshim.png create mode 100644 frontend/im/colors/index.html create mode 100644 frontend/im/colors/js/ancient.js create mode 100644 frontend/im/colors/js/colorpicker.js create mode 100644 frontend/im/colors/js/data.js create mode 100644 frontend/im/colors/js/jquery-1.10.1.js create mode 100644 frontend/im/colors/js/jquery-1.10.1.min.map create mode 100644 frontend/im/colors/js/jquery.fancybox.js create mode 100644 frontend/im/colors/js/jquery.mousewheel-3.0.6.pack.js create mode 100644 frontend/im/colors/js/jquery.remember-state.js create mode 100644 frontend/im/colors/js/jquery.remember-state.pack.js create mode 100644 frontend/im/colors_iframe.js create mode 100755 frontend/im/df.html create mode 100755 frontend/im/df.png create mode 100755 frontend/im/gallery/.htaccess create mode 100755 frontend/im/gallery/pep/.htaccess create mode 100755 frontend/im/gallery_style.css create mode 100755 frontend/im/gradient.html create mode 100755 frontend/im/imcupbg.jpg create mode 100755 frontend/im/index.html create mode 100755 frontend/im/new.gif create mode 100755 frontend/im/newimagemaker.html create mode 100644 frontend/im/shader/index.html create mode 100644 frontend/im/thing1.gif create mode 100644 frontend/im/thing2.png create mode 100755 frontend/imbreak/_broken_by_janie_30e_semitrans1.png create mode 100755 frontend/imbreak/cssreset.css create mode 100755 frontend/imbreak/imbreakfavico.ico create mode 100644 frontend/imbreak/img/ALPHA20IVY20201_1323328300.gif create mode 100755 frontend/imbreak/img/_broken_by_janie_147_greeks.gif create mode 100755 frontend/imbreak/img/_broken_by_janie_16b_justhost_155x75.gif create mode 100755 frontend/imbreak/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg create mode 100755 frontend/imbreak/img/columns.jpg create mode 100755 frontend/imbreak/img/firstlogo.gif create mode 100755 frontend/imbreak/img/generating.gif create mode 100755 frontend/imbreak/img/greeks.gif create mode 100644 frontend/imbreak/img/imgrid_1328137237_ivy_pepper.gif create mode 100755 frontend/imbreak/img/ivy.gif create mode 100755 frontend/imbreak/img/ivy2.gif create mode 100755 frontend/imbreak/img/newmain.gif create mode 100755 frontend/imbreak/img/og.jpg create mode 100755 frontend/imbreak/img/on9TF_1322970909_1322970984_1323325278.gif create mode 100755 frontend/imbreak/img/title1.gif create mode 100755 frontend/imbreak/index.html create mode 100755 frontend/imbreak/jquery-ui-1.8.16.custom.css create mode 100755 frontend/imbreak/js/imbreak-main.js create mode 100755 frontend/imbreak/js/jcookie.js create mode 100755 frontend/imbreak/js/jquery-ui.min.js create mode 100755 frontend/imbreak/js/jquery.cookie.js create mode 100755 frontend/imbreak/js/jquery.min.js create mode 100755 frontend/imbreak/newindex.html create mode 100755 frontend/imbreak/semitrans1.png create mode 100755 frontend/imbreak/thegif/1.gif create mode 100755 frontend/imbreak/thegif/2.gif create mode 100755 frontend/imbreak/thegif/2.jpg create mode 100755 frontend/imbreak/thegif/3.gif create mode 100755 frontend/imbreak/thegif/4.gif create mode 100755 frontend/imbreak/thegif/5.gif create mode 100755 frontend/imbreak/thegif/6.gif create mode 100755 frontend/imbreak/thegif/6.jpg create mode 100755 frontend/imbreak/thegif/6.sun create mode 100755 frontend/imbreak/thegif/three.gif create mode 100755 frontend/imdither/.gitignore create mode 100755 frontend/imdither/18.bmp create mode 100755 frontend/imdither/bottle.py create mode 100755 frontend/imdither/imdither.html create mode 100755 frontend/imdither/img/logo.png create mode 100755 frontend/imdither/jquery.min.js create mode 100755 frontend/imdither/makeDither.py create mode 100755 frontend/imdither/pbutils.py create mode 100755 frontend/imdither/run.py create mode 100755 frontend/imdither/s3.py create mode 100755 frontend/imdither/urlDownload.py create mode 120000 frontend/img/ALPHA20IVY20201_1323328300.gif create mode 120000 frontend/img/_broken_by_janie_147_greeks.gif create mode 120000 frontend/img/_broken_by_janie_16b_justhost_155x75.gif create mode 120000 frontend/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg create mode 120000 frontend/img/athenafinal.gif create mode 120000 frontend/img/background.gif create mode 120000 frontend/img/blackplant.png create mode 120000 frontend/img/blackplant2.png create mode 120000 frontend/img/blackplant3.png create mode 120000 frontend/img/bros.png create mode 120000 frontend/img/brush.png create mode 120000 frontend/img/columns.jpg create mode 120000 frontend/img/eraser.png create mode 120000 frontend/img/facebookimage.png create mode 120000 frontend/img/firstlogo.gif create mode 120000 frontend/img/generating.gif create mode 120000 frontend/img/greeks.gif create mode 120000 frontend/img/harrisbros.png create mode 120000 frontend/img/imgrid.png create mode 120000 frontend/img/imgrid_1328137237_ivy_pepper.gif create mode 120000 frontend/img/impattern.png create mode 120000 frontend/img/ivy.gif create mode 120000 frontend/img/ivy2.gif create mode 120000 frontend/img/loading.gif create mode 120000 frontend/img/logo.gif create mode 120000 frontend/img/newmain.gif create mode 120000 frontend/img/og.jpg create mode 120000 frontend/img/oldathena.gif create mode 120000 frontend/img/on9TF_1322970909_1322970984_1323325278.gif create mode 120000 frontend/img/test.gif create mode 120000 frontend/img/thatbackground.gif create mode 120000 frontend/img/title1.gif create mode 100755 frontend/imgradient/bevelborder(2) create mode 100755 frontend/imgradient/colors.html create mode 100644 frontend/imgradient/colors_iframe.js create mode 100755 frontend/imgradient/css/custom-theme/images/ui-bg_diagonal-maze_75_ffffff_10x10.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-bg_diagonals-medium_75_cccccc_40x40.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-bg_glass_65_ffffff_1x400.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_dadada_1x400.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-bg_gloss-wave_0_aaaaaa_500x100.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-bg_inset-hard_55_fbf9ee_1x100.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-icons_222222_256x240.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-icons_2e83ff_256x240.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-icons_454545_256x240.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-icons_888888_256x240.png create mode 100755 frontend/imgradient/css/custom-theme/images/ui-icons_cd0a0a_256x240.png create mode 100755 frontend/imgradient/css/custom-theme/jquery-ui-1.8.16.custom.css create mode 100755 frontend/imgradient/dirs.html create mode 100755 frontend/imgradient/dirs.py create mode 100755 frontend/imgradient/firstrun/blue-turquoise_1315104576.gif create mode 100755 frontend/imgradient/firstrun/blue-turquoise_1315104586.gif create mode 100755 frontend/imgradient/firstrun/blue-turquoise_1315104592.gif create mode 100755 frontend/imgradient/firstrun/blue-turquoise_1315104597.gif create mode 100755 frontend/imgradient/firstrun/blue-turquoise_1315104604.gif create mode 100755 frontend/imgradient/firstrun/blue-turquoise_1315104609.gif create mode 100755 frontend/imgradient/firstrun/green-black_1315122389.gif create mode 100755 frontend/imgradient/firstrun/green-black_1315122400.gif create mode 100755 frontend/imgradient/firstrun/green-black_1315122410.gif create mode 100755 frontend/imgradient/firstrun/green-black_1315122420.gif create mode 100755 frontend/imgradient/firstrun/green-black_1315122433.gif create mode 100755 frontend/imgradient/firstrun/green-black_1315122439.gif create mode 100755 frontend/imgradient/firstrun/green-black_1315122450.gif create mode 100755 frontend/imgradient/firstrun/green-darkorchid_1315122486.gif create mode 100755 frontend/imgradient/firstrun/pink-brown_1315117256_pepper.gif create mode 100755 frontend/imgradient/firstrun/pink-brown_1315117275_pepper.gif create mode 100755 frontend/imgradient/firstrun/pink-brown_1315117282_pepper.gif create mode 100755 frontend/imgradient/firstrun/pink-brown_1315117337_pepper.gif create mode 100755 frontend/imgradient/firstrun/pink-brown_1315117344_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104452_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104469_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104474_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104486_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104496_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104503_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104513_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104557_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104564_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104570_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104579_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315104583_pepper.gif create mode 100755 frontend/imgradient/firstrun/red-black_1315105326_pepper.gif create mode 100755 frontend/imgradient/firstrun/snow2-orange_1315118700.gif create mode 100755 frontend/imgradient/firstrun/snow2-rosybrown1_1315117026_pepper.gif create mode 100755 frontend/imgradient/firstrun/turquoise-black_1315109992.gif create mode 100755 frontend/imgradient/firstrun/turquoise-black_1315109999.gif create mode 100755 frontend/imgradient/firstrun/turquoise-black_1315110014.gif create mode 100755 frontend/imgradient/firstrun/turquoise-black_1315110018.gif create mode 100755 frontend/imgradient/firstrun/turquoise-black_1315116328_pepper.gif create mode 100755 frontend/imgradient/firstrun/turquoise-indianred_1315106124_pepper.gif create mode 100755 frontend/imgradient/firstrun/turquoise-indianred_1315106162_pepper.gif create mode 100755 frontend/imgradient/firstrun/turquoise-indianred_1315106185_pepper.gif create mode 100755 frontend/imgradient/firstrun/turquoise-indianred_1315106200_pepper.gif create mode 100755 frontend/imgradient/firstrun/turquoise-turquoise1_1315165837_pepper.gif create mode 100755 frontend/imgradient/firstrun/turquoise-turquoise1_1315165849_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315090214.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315090397.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315104253_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315104262_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315104264_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315104276_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315104281_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315104287_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315104447_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315106725_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113027.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113031.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113039.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113043.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113054.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113059.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113066.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113070.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113080.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113215.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113231_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113240_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113554_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315113558_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315114146_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315114150_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315114156_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315114160_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315115826_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315115828_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315115830_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315115831_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315116319_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315117463_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315118264_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315118293_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315118571_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315119305_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315119637_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315120513_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315121913_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315121922_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315121930_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315122356.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315122405.gif create mode 100755 frontend/imgradient/firstrun/white-black_1315159828_pepper.gif create mode 100755 frontend/imgradient/firstrun/white-turquoise_1315113096.gif create mode 100755 frontend/imgradient/firstrun/white-turquoise_1315113100.gif create mode 100755 frontend/imgradient/firstrun/white-turquoise_1315113101.gif create mode 100755 frontend/imgradient/index.html create mode 100755 frontend/imgradient/jquery-ui-1.8.16.custom.min.js create mode 100755 frontend/imgrid/3ddirs.txt create mode 100755 frontend/imgrid/backup.html create mode 100755 frontend/imgrid/colors/1.html create mode 100755 frontend/imgrid/colors/blackshim.png create mode 100755 frontend/imgrid/colors/colors/1.html create mode 100755 frontend/imgrid/colors/colors/blackshim.png create mode 100755 frontend/imgrid/colors/colors/grayshim.png create mode 100755 frontend/imgrid/colors/colors/hoverbutton.png create mode 100755 frontend/imgrid/colors/colors/index.html create mode 100755 frontend/imgrid/colors/colors/js/backgroundswitcher.js create mode 100755 frontend/imgrid/colors/colors/js/colordict.js create mode 100755 frontend/imgrid/colors/colors/js/colordictionaries2.js create mode 100755 frontend/imgrid/colors/colors/js/ditherbackground.gif create mode 100755 frontend/imgrid/colors/colors/js/goldenfunctions.js create mode 100755 frontend/imgrid/colors/colors/js/hexrgbnametoggle.js create mode 100755 frontend/imgrid/colors/colors/js/hoverbackground.jpg create mode 100755 frontend/imgrid/colors/colors/js/hovercss.js create mode 100755 frontend/imgrid/colors/colors/js/iftransparentcss.js create mode 100755 frontend/imgrid/colors/colors/js/jquery-1.6.4.min.js create mode 100755 frontend/imgrid/colors/colors/js/jquery.cookie.js create mode 100755 frontend/imgrid/colors/colors/js/setupdimensions.js create mode 100755 frontend/imgrid/colors/colors/js/wrkshp/colors.html create mode 100755 frontend/imgrid/colors/colors/js/wrkshp/hexes create mode 100755 frontend/imgrid/colors/colors/js/wrkshp/maker.py create mode 100755 frontend/imgrid/colors/colors/js/wrkshp/names create mode 100755 frontend/imgrid/colors/colors/js/wrkshp/rgbs create mode 100755 frontend/imgrid/colors/colors/junk/ScrollEffect.js create mode 100755 frontend/imgrid/colors/colors/junk/ScrollEffectcomingsoon.js create mode 100755 frontend/imgrid/colors/colors/junk/brush.ani create mode 100755 frontend/imgrid/colors/colors/junk/colordictOLD.js create mode 100755 frontend/imgrid/colors/colors/junk/colorpicker.html create mode 100755 frontend/imgrid/colors/colors/junk/colorpixx.css create mode 100755 frontend/imgrid/colors/colors/junk/colorpixx.js create mode 100755 frontend/imgrid/colors/colors/junk/colors.html create mode 100755 frontend/imgrid/colors/colors/junk/colorsbest.html create mode 100755 frontend/imgrid/colors/colors/junk/divlist.js create mode 100755 frontend/imgrid/colors/colors/junk/divlistmaker create mode 100755 frontend/imgrid/colors/colors/junk/mapmaker.html create mode 100755 frontend/imgrid/colors/colors/junk/picker.js create mode 100755 frontend/imgrid/colors/colors/junk/scrollio.html create mode 100755 frontend/imgrid/colors/colors/junk/separate create mode 100755 frontend/imgrid/colors/colors/junk/todo.txt create mode 100755 frontend/imgrid/colors/colors/junk/withscroller.html create mode 100755 frontend/imgrid/colors/colors/minimap.html create mode 100755 frontend/imgrid/colors/colors/minoan.gif create mode 100755 frontend/imgrid/colors/colors/savior.html create mode 100755 frontend/imgrid/colors/colors/test.html create mode 100755 frontend/imgrid/colors/colors/vase.gif create mode 100755 frontend/imgrid/colors/colors/vase.png create mode 100755 frontend/imgrid/colors/colors/vaseshim.png create mode 100755 frontend/imgrid/colors/colors/whiteshim.png create mode 100755 frontend/imgrid/colors/grayshim.png create mode 100755 frontend/imgrid/colors/hoverbutton.png create mode 100755 frontend/imgrid/colors/index.html create mode 100755 frontend/imgrid/colors/js/backgroundswitcher.js create mode 100755 frontend/imgrid/colors/js/colordict.js create mode 100755 frontend/imgrid/colors/js/colordictionaries2.js create mode 100755 frontend/imgrid/colors/js/ditherbackground.gif create mode 100755 frontend/imgrid/colors/js/goldenfunctions.js create mode 100755 frontend/imgrid/colors/js/hexrgbnametoggle.js create mode 100755 frontend/imgrid/colors/js/hoverbackground.jpg create mode 100755 frontend/imgrid/colors/js/hovercss.js create mode 100755 frontend/imgrid/colors/js/iftransparentcss.js create mode 100755 frontend/imgrid/colors/js/jquery-1.6.4.min.js create mode 100755 frontend/imgrid/colors/js/jquery.cookie.js create mode 100755 frontend/imgrid/colors/js/setupdimensions.js create mode 100755 frontend/imgrid/colors/js/wrkshp/colors.html create mode 100755 frontend/imgrid/colors/js/wrkshp/hexes create mode 100755 frontend/imgrid/colors/js/wrkshp/maker.py create mode 100755 frontend/imgrid/colors/js/wrkshp/names create mode 100755 frontend/imgrid/colors/js/wrkshp/rgbs create mode 100755 frontend/imgrid/colors/junk/ScrollEffect.js create mode 100755 frontend/imgrid/colors/junk/ScrollEffectcomingsoon.js create mode 100755 frontend/imgrid/colors/junk/brush.ani create mode 100755 frontend/imgrid/colors/junk/colordictOLD.js create mode 100755 frontend/imgrid/colors/junk/colorpicker.html create mode 100755 frontend/imgrid/colors/junk/colorpixx.css create mode 100755 frontend/imgrid/colors/junk/colorpixx.js create mode 100755 frontend/imgrid/colors/junk/colors.html create mode 100755 frontend/imgrid/colors/junk/colorsbest.html create mode 100755 frontend/imgrid/colors/junk/divlist.js create mode 100755 frontend/imgrid/colors/junk/divlistmaker create mode 100755 frontend/imgrid/colors/junk/mapmaker.html create mode 100755 frontend/imgrid/colors/junk/picker.js create mode 100755 frontend/imgrid/colors/junk/scrollio.html create mode 100755 frontend/imgrid/colors/junk/separate create mode 100755 frontend/imgrid/colors/junk/todo.txt create mode 100755 frontend/imgrid/colors/junk/withscroller.html create mode 100755 frontend/imgrid/colors/minimap.html create mode 100755 frontend/imgrid/colors/minoan.gif create mode 100755 frontend/imgrid/colors/savior.html create mode 100755 frontend/imgrid/colors/test.html create mode 100755 frontend/imgrid/colors/vase.gif create mode 100755 frontend/imgrid/colors/vase.png create mode 100755 frontend/imgrid/colors/vaseshim.png create mode 100755 frontend/imgrid/colors/whiteshim.png create mode 100755 frontend/imgrid/css/cssreset.css create mode 100755 frontend/imgrid/css/general.css create mode 100755 frontend/imgrid/css/jquery-ui-1.8.16.custom.css create mode 100755 frontend/imgrid/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-icons_222222_256x240.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-icons_2e83ff_256x240.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-icons_454545_256x240.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-icons_888888_256x240.png create mode 100755 frontend/imgrid/css/smoothness/images/ui-icons_cd0a0a_256x240.png create mode 100755 frontend/imgrid/css/smoothness/jquery-ui-1.8.16.custom.css create mode 100755 frontend/imgrid/dist/3dmap.jar create mode 100755 frontend/imgrid/dist/3dmap.jnlp create mode 100755 frontend/imgrid/dist/deployment/v1/gluegen-rt.jnlp create mode 100755 frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-amd64.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-i586.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-ppc.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-universal.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-amd64.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-i586.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparc.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparcv9.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-amd64.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-i586.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-amd64.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-i586.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-ppc.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-universal.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-amd64.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-i586.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparc.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparcv9.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-amd64.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-i586.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/jogl.jar create mode 100755 frontend/imgrid/dist/deployment/v1/jar/testKeys create mode 100755 frontend/imgrid/dist/deployment/v1/jogl-awt.jnlp create mode 100755 frontend/imgrid/dist/http/commons-codec-1.4.jar create mode 100755 frontend/imgrid/dist/http/commons-logging-1.1.1.jar create mode 100755 frontend/imgrid/dist/http/httpclient-4.1.2.jar create mode 100755 frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar create mode 100755 frontend/imgrid/dist/http/httpcore-4.1.2.jar create mode 100755 frontend/imgrid/dist/http/httpmime-4.1.2.jar create mode 100755 frontend/imgrid/dist/http/plugin.jar create mode 100755 frontend/imgrid/dist/index.html create mode 100755 frontend/imgrid/dist/temp/HeightMap.jpg create mode 100755 frontend/imgrid/dist/temp/Texture.jpg create mode 100755 frontend/imgrid/dist/testKeys create mode 100755 frontend/imgrid/dist_embedded/3DMapAllWin.jar create mode 100755 frontend/imgrid/dist_embedded/index.html create mode 100755 frontend/imgrid/favicon.ico create mode 100755 frontend/imgrid/greatgrids/blackplant.png create mode 100755 frontend/imgrid/greatgrids/copy.html create mode 100755 frontend/imgrid/greatgrids/facebookimage.jpg create mode 100755 frontend/imgrid/greatgrids/facebookimage.png create mode 100755 frontend/imgrid/greatgrids/gallery.html create mode 100755 frontend/imgrid/greatgrids/greatgrids.ico create mode 100755 frontend/imgrid/greatgrids/grids.ico create mode 100755 frontend/imgrid/greatgrids/grids.png create mode 100755 frontend/imgrid/greatgrids/hey.html create mode 100755 frontend/imgrid/greatgrids/images/LaL1S.jpg create mode 100755 frontend/imgrid/greatgrids/images/gg1.png create mode 100755 frontend/imgrid/greatgrids/images/gg2.png create mode 100755 frontend/imgrid/greatgrids/images/gg3.png create mode 100755 frontend/imgrid/greatgrids/images/gg4.png create mode 100755 frontend/imgrid/greatgrids/images/gg5.png create mode 100755 frontend/imgrid/greatgrids/images/gg6.png create mode 100755 frontend/imgrid/greatgrids/images/gg7.png create mode 100755 frontend/imgrid/greatgrids/images/gg8.jpg create mode 100755 frontend/imgrid/greatgrids/images/gg8.png create mode 100755 frontend/imgrid/greatgrids/index.html create mode 100755 frontend/imgrid/greatgrids/plain.html create mode 100755 frontend/imgrid/greatgrids/screen.html create mode 100755 frontend/imgrid/greatgrids/tinybackground.gif create mode 100755 frontend/imgrid/greatgrids/tinybackground2.gif create mode 100755 frontend/imgrid/img/athenafinal.gif create mode 100755 frontend/imgrid/img/background.gif create mode 100755 frontend/imgrid/img/blackplant.png create mode 100755 frontend/imgrid/img/blackplant2.png create mode 100755 frontend/imgrid/img/blackplant3.png create mode 100755 frontend/imgrid/img/bros.png create mode 100755 frontend/imgrid/img/facebookimage.png create mode 100755 frontend/imgrid/img/generating.gif create mode 100755 frontend/imgrid/img/harrisbros.png create mode 100755 frontend/imgrid/img/imgrid.png create mode 100755 frontend/imgrid/img/oldathena.gif create mode 100755 frontend/imgrid/img/test.gif create mode 100755 frontend/imgrid/img/thatbackground.gif create mode 100755 frontend/imgrid/index.html create mode 100755 frontend/imgrid/indexOLD.html create mode 100755 frontend/imgrid/indexnewold.html create mode 100755 frontend/imgrid/indexold.html create mode 100755 frontend/imgrid/intro.html create mode 100755 frontend/imgrid/jeremy.html create mode 100755 frontend/imgrid/jmd.html create mode 100755 frontend/imgrid/js/colordictbackup.js create mode 100644 frontend/imgrid/js/colors_iframe.js create mode 100755 frontend/imgrid/js/imgrid-main.js create mode 100755 frontend/imgrid/js/jquery-1.6.4.min.js create mode 100755 frontend/imgrid/js/jquery-ui-1.8.16.custom.min.js create mode 100755 frontend/imgrid/js/maincopy.js create mode 100755 frontend/imgrid/js/popup.js create mode 100755 frontend/imgrid/js/sliders.js create mode 100755 frontend/imgrid/old.html create mode 100755 frontend/imgrid/oldindex.html create mode 100755 frontend/imgrid/safety.html create mode 100755 frontend/imgrid/sj6v1.zip create mode 100644 frontend/imlandscape/README.md create mode 100644 frontend/imlandscape/img/Heightmap.jpg create mode 100644 frontend/imlandscape/img/Texture.jpg create mode 100644 frontend/imlandscape/img/generating_background.gif create mode 100644 frontend/imlandscape/index.html create mode 100644 frontend/imlandscape/js/3D_Landscape.js create mode 100644 frontend/imlandscape/js/Detector.js create mode 100644 frontend/imlandscape/js/RequestAnimationFrame.js create mode 100644 frontend/imlandscape/js/Three.js create mode 100644 frontend/imlandscape/js/generating.js create mode 100644 frontend/imlandscape/js/jquery.min.js create mode 100644 frontend/imlandscape/js/keypress.js create mode 100644 frontend/imlandscape/js/pb.js create mode 100644 frontend/imlandscape/js/username.js create mode 100644 frontend/imlandscape/simple_proxy.py create mode 100644 frontend/impattern/app.pl create mode 100644 frontend/impattern/css/main.css create mode 100644 frontend/impattern/css/normalize.css create mode 100644 frontend/impattern/css/overlay.css create mode 100644 frontend/impattern/css/result.css create mode 100644 frontend/impattern/css/sketch.css create mode 100644 frontend/impattern/css/unsemantic-grid-responsive.css create mode 100644 frontend/impattern/img/brush.png create mode 100644 frontend/impattern/img/eraser.png create mode 100644 frontend/impattern/img/impattern.png create mode 100644 frontend/impattern/img/loading.gif create mode 100644 frontend/impattern/img/logo.gif create mode 100644 frontend/impattern/impattern.html create mode 100755 frontend/impattern/index.html create mode 100644 frontend/impattern/js/display_result.js create mode 100644 frontend/impattern/js/inputs.js create mode 100644 frontend/impattern/js/jquery.min.js create mode 100644 frontend/impattern/js/overlay.js create mode 100644 frontend/impattern/js/preview.js create mode 100644 frontend/impattern/js/sketch.js create mode 100644 frontend/impattern/js/urls.js create mode 100644 frontend/impattern/js/username.js create mode 100755 frontend/impattern/makePattern.py create mode 100644 frontend/impattern/myjson.json create mode 100644 frontend/impattern/newimagefromjson.py create mode 100644 frontend/impattern/old/bottle.py create mode 100644 frontend/impattern/old/index.html.old create mode 100644 frontend/impattern/old/oldpatterns/1.png create mode 100644 frontend/impattern/old/oldpatterns/10.png create mode 100644 frontend/impattern/old/oldpatterns/11.png create mode 100644 frontend/impattern/old/oldpatterns/12.png create mode 100644 frontend/impattern/old/oldpatterns/13.png create mode 100644 frontend/impattern/old/oldpatterns/14.png create mode 100644 frontend/impattern/old/oldpatterns/15.png create mode 100644 frontend/impattern/old/oldpatterns/16.png create mode 100644 frontend/impattern/old/oldpatterns/17.png create mode 100644 frontend/impattern/old/oldpatterns/18.png create mode 100644 frontend/impattern/old/oldpatterns/19.png create mode 100644 frontend/impattern/old/oldpatterns/2.png create mode 100644 frontend/impattern/old/oldpatterns/20.png create mode 100644 frontend/impattern/old/oldpatterns/21.png create mode 100644 frontend/impattern/old/oldpatterns/22.png create mode 100644 frontend/impattern/old/oldpatterns/23.png create mode 100644 frontend/impattern/old/oldpatterns/24.png create mode 100644 frontend/impattern/old/oldpatterns/25.png create mode 100644 frontend/impattern/old/oldpatterns/26.png create mode 100644 frontend/impattern/old/oldpatterns/27.png create mode 100644 frontend/impattern/old/oldpatterns/28.png create mode 100644 frontend/impattern/old/oldpatterns/29.png create mode 100644 frontend/impattern/old/oldpatterns/3.png create mode 100644 frontend/impattern/old/oldpatterns/30.png create mode 100644 frontend/impattern/old/oldpatterns/31.png create mode 100644 frontend/impattern/old/oldpatterns/32.png create mode 100644 frontend/impattern/old/oldpatterns/33.png create mode 100644 frontend/impattern/old/oldpatterns/34.png create mode 100644 frontend/impattern/old/oldpatterns/35.png create mode 100644 frontend/impattern/old/oldpatterns/36.png create mode 100644 frontend/impattern/old/oldpatterns/37.png create mode 100644 frontend/impattern/old/oldpatterns/38.png create mode 100644 frontend/impattern/old/oldpatterns/39.png create mode 100644 frontend/impattern/old/oldpatterns/4.png create mode 100644 frontend/impattern/old/oldpatterns/40.png create mode 100644 frontend/impattern/old/oldpatterns/41.png create mode 100644 frontend/impattern/old/oldpatterns/42.png create mode 100644 frontend/impattern/old/oldpatterns/43.png create mode 100644 frontend/impattern/old/oldpatterns/44.png create mode 100644 frontend/impattern/old/oldpatterns/45.png create mode 100644 frontend/impattern/old/oldpatterns/46.png create mode 100644 frontend/impattern/old/oldpatterns/47.png create mode 100644 frontend/impattern/old/oldpatterns/48.png create mode 100644 frontend/impattern/old/oldpatterns/49.png create mode 100644 frontend/impattern/old/oldpatterns/5.png create mode 100644 frontend/impattern/old/oldpatterns/50.png create mode 100644 frontend/impattern/old/oldpatterns/51.png create mode 100644 frontend/impattern/old/oldpatterns/52.png create mode 100644 frontend/impattern/old/oldpatterns/53.png create mode 100644 frontend/impattern/old/oldpatterns/54.png create mode 100644 frontend/impattern/old/oldpatterns/55.png create mode 100644 frontend/impattern/old/oldpatterns/56.png create mode 100644 frontend/impattern/old/oldpatterns/57.png create mode 100644 frontend/impattern/old/oldpatterns/58.png create mode 100644 frontend/impattern/old/oldpatterns/59.png create mode 100644 frontend/impattern/old/oldpatterns/6.png create mode 100644 frontend/impattern/old/oldpatterns/60.png create mode 100644 frontend/impattern/old/oldpatterns/61.png create mode 100644 frontend/impattern/old/oldpatterns/62.png create mode 100644 frontend/impattern/old/oldpatterns/63.png create mode 100644 frontend/impattern/old/oldpatterns/64.png create mode 100644 frontend/impattern/old/oldpatterns/65.png create mode 100644 frontend/impattern/old/oldpatterns/66.png create mode 100644 frontend/impattern/old/oldpatterns/67.png create mode 100644 frontend/impattern/old/oldpatterns/68.png create mode 100644 frontend/impattern/old/oldpatterns/69.png create mode 100644 frontend/impattern/old/oldpatterns/7.png create mode 100644 frontend/impattern/old/oldpatterns/70.png create mode 100644 frontend/impattern/old/oldpatterns/71.png create mode 100644 frontend/impattern/old/oldpatterns/72.png create mode 100644 frontend/impattern/old/oldpatterns/73.png create mode 100644 frontend/impattern/old/oldpatterns/74.png create mode 100644 frontend/impattern/old/oldpatterns/75.png create mode 100644 frontend/impattern/old/oldpatterns/76.png create mode 100644 frontend/impattern/old/oldpatterns/77.png create mode 100644 frontend/impattern/old/oldpatterns/78.png create mode 100644 frontend/impattern/old/oldpatterns/79.png create mode 100644 frontend/impattern/old/oldpatterns/8.png create mode 100644 frontend/impattern/old/oldpatterns/80.png create mode 100644 frontend/impattern/old/oldpatterns/81.png create mode 100644 frontend/impattern/old/oldpatterns/82.png create mode 100644 frontend/impattern/old/oldpatterns/83.png create mode 100644 frontend/impattern/old/oldpatterns/84.png create mode 100644 frontend/impattern/old/oldpatterns/85.png create mode 100644 frontend/impattern/old/oldpatterns/86.png create mode 100644 frontend/impattern/old/oldpatterns/87.png create mode 100644 frontend/impattern/old/oldpatterns/88.png create mode 100644 frontend/impattern/old/oldpatterns/89.png create mode 100644 frontend/impattern/old/oldpatterns/9.png create mode 100644 frontend/impattern/old/oldpatterns/90.png create mode 100644 frontend/impattern/old/oldpatterns/91.png create mode 100644 frontend/impattern/old/oldpatterns/92.png create mode 100644 frontend/impattern/old/oldpatterns/93.png create mode 100644 frontend/impattern/old/oldpatterns/94.png create mode 100644 frontend/impattern/old/oldpatterns/95.png create mode 100644 frontend/impattern/old/oldpatterns/96.png create mode 100644 frontend/impattern/old/oldpatterns/a0.png create mode 100644 frontend/impattern/old/oldpatterns/a1.png create mode 100644 frontend/impattern/old/oldpatterns/a10.png create mode 100644 frontend/impattern/old/oldpatterns/a11.png create mode 100644 frontend/impattern/old/oldpatterns/a12.png create mode 100644 frontend/impattern/old/oldpatterns/a13.png create mode 100644 frontend/impattern/old/oldpatterns/a14.png create mode 100644 frontend/impattern/old/oldpatterns/a15.png create mode 100644 frontend/impattern/old/oldpatterns/a16.png create mode 100644 frontend/impattern/old/oldpatterns/a17.png create mode 100644 frontend/impattern/old/oldpatterns/a18.png create mode 100644 frontend/impattern/old/oldpatterns/a19.png create mode 100644 frontend/impattern/old/oldpatterns/a2.png create mode 100644 frontend/impattern/old/oldpatterns/a20.png create mode 100644 frontend/impattern/old/oldpatterns/a21.png create mode 100644 frontend/impattern/old/oldpatterns/a22.png create mode 100644 frontend/impattern/old/oldpatterns/a23.png create mode 100644 frontend/impattern/old/oldpatterns/a24.png create mode 100644 frontend/impattern/old/oldpatterns/a25.png create mode 100644 frontend/impattern/old/oldpatterns/a26.png create mode 100644 frontend/impattern/old/oldpatterns/a27.png create mode 100644 frontend/impattern/old/oldpatterns/a28.png create mode 100644 frontend/impattern/old/oldpatterns/a29.png create mode 100644 frontend/impattern/old/oldpatterns/a3.png create mode 100644 frontend/impattern/old/oldpatterns/a30.png create mode 100644 frontend/impattern/old/oldpatterns/a31.png create mode 100644 frontend/impattern/old/oldpatterns/a32.png create mode 100644 frontend/impattern/old/oldpatterns/a33.png create mode 100644 frontend/impattern/old/oldpatterns/a34.png create mode 100644 frontend/impattern/old/oldpatterns/a35.png create mode 100644 frontend/impattern/old/oldpatterns/a36.png create mode 100644 frontend/impattern/old/oldpatterns/a37.png create mode 100644 frontend/impattern/old/oldpatterns/a38.png create mode 100644 frontend/impattern/old/oldpatterns/a39.png create mode 100644 frontend/impattern/old/oldpatterns/a4.png create mode 100644 frontend/impattern/old/oldpatterns/a40.png create mode 100644 frontend/impattern/old/oldpatterns/a41.png create mode 100644 frontend/impattern/old/oldpatterns/a5.png create mode 100644 frontend/impattern/old/oldpatterns/a6.png create mode 100644 frontend/impattern/old/oldpatterns/a7.png create mode 100644 frontend/impattern/old/oldpatterns/a8.png create mode 100644 frontend/impattern/old/oldpatterns/a9.png create mode 100644 frontend/impattern/other_script.py create mode 100644 frontend/impattern/patterns/1.png create mode 100644 frontend/impattern/patterns/10.png create mode 100644 frontend/impattern/patterns/11.png create mode 100644 frontend/impattern/patterns/12.png create mode 100644 frontend/impattern/patterns/13.png create mode 100644 frontend/impattern/patterns/14.png create mode 100644 frontend/impattern/patterns/15.png create mode 100644 frontend/impattern/patterns/16.png create mode 100644 frontend/impattern/patterns/17.png create mode 100644 frontend/impattern/patterns/18.png create mode 100644 frontend/impattern/patterns/19.png create mode 100644 frontend/impattern/patterns/2.png create mode 100644 frontend/impattern/patterns/20.png create mode 100644 frontend/impattern/patterns/21.png create mode 100644 frontend/impattern/patterns/22.png create mode 100644 frontend/impattern/patterns/23.png create mode 100644 frontend/impattern/patterns/24.png create mode 100644 frontend/impattern/patterns/25.png create mode 100644 frontend/impattern/patterns/26.png create mode 100644 frontend/impattern/patterns/27.png create mode 100644 frontend/impattern/patterns/28.png create mode 100644 frontend/impattern/patterns/29.png create mode 100644 frontend/impattern/patterns/3.png create mode 100644 frontend/impattern/patterns/30.png create mode 100644 frontend/impattern/patterns/31.png create mode 100644 frontend/impattern/patterns/32.png create mode 100644 frontend/impattern/patterns/33.png create mode 100644 frontend/impattern/patterns/34.png create mode 100644 frontend/impattern/patterns/35.png create mode 100644 frontend/impattern/patterns/36.png create mode 100644 frontend/impattern/patterns/37.png create mode 100644 frontend/impattern/patterns/38.png create mode 100644 frontend/impattern/patterns/39.png create mode 100644 frontend/impattern/patterns/4.png create mode 100644 frontend/impattern/patterns/40.png create mode 100644 frontend/impattern/patterns/41.png create mode 100644 frontend/impattern/patterns/42.png create mode 100644 frontend/impattern/patterns/43.png create mode 100644 frontend/impattern/patterns/44.png create mode 100644 frontend/impattern/patterns/45.png create mode 100644 frontend/impattern/patterns/46.png create mode 100644 frontend/impattern/patterns/47.png create mode 100644 frontend/impattern/patterns/48.png create mode 100644 frontend/impattern/patterns/49.png create mode 100644 frontend/impattern/patterns/5.png create mode 100644 frontend/impattern/patterns/50.png create mode 100644 frontend/impattern/patterns/51.png create mode 100644 frontend/impattern/patterns/52.png create mode 100644 frontend/impattern/patterns/53.png create mode 100644 frontend/impattern/patterns/54.png create mode 100644 frontend/impattern/patterns/55.png create mode 100644 frontend/impattern/patterns/56.png create mode 100644 frontend/impattern/patterns/57.png create mode 100644 frontend/impattern/patterns/58.png create mode 100644 frontend/impattern/patterns/59.png create mode 100644 frontend/impattern/patterns/6.png create mode 100644 frontend/impattern/patterns/60.png create mode 100644 frontend/impattern/patterns/61.png create mode 100644 frontend/impattern/patterns/62.png create mode 100644 frontend/impattern/patterns/63.png create mode 100644 frontend/impattern/patterns/64.png create mode 100644 frontend/impattern/patterns/65.png create mode 100644 frontend/impattern/patterns/66.png create mode 100644 frontend/impattern/patterns/67.png create mode 100644 frontend/impattern/patterns/68.png create mode 100644 frontend/impattern/patterns/69.png create mode 100644 frontend/impattern/patterns/7.png create mode 100644 frontend/impattern/patterns/70.png create mode 100644 frontend/impattern/patterns/71.png create mode 100644 frontend/impattern/patterns/72.png create mode 100644 frontend/impattern/patterns/73.png create mode 100644 frontend/impattern/patterns/74.png create mode 100644 frontend/impattern/patterns/75.png create mode 100644 frontend/impattern/patterns/76.png create mode 100644 frontend/impattern/patterns/77.png create mode 100644 frontend/impattern/patterns/78.png create mode 100644 frontend/impattern/patterns/79.png create mode 100644 frontend/impattern/patterns/8.png create mode 100644 frontend/impattern/patterns/80.png create mode 100644 frontend/impattern/patterns/81.png create mode 100644 frontend/impattern/patterns/82.png create mode 100644 frontend/impattern/patterns/83.png create mode 100644 frontend/impattern/patterns/84.png create mode 100644 frontend/impattern/patterns/85.png create mode 100644 frontend/impattern/patterns/86.png create mode 100644 frontend/impattern/patterns/87.png create mode 100644 frontend/impattern/patterns/88.png create mode 100644 frontend/impattern/patterns/89.png create mode 100644 frontend/impattern/patterns/9.png create mode 100644 frontend/impattern/patterns/90.png create mode 100644 frontend/impattern/patterns/91.png create mode 100644 frontend/impattern/patterns/92.png create mode 100644 frontend/impattern/patterns/93.png create mode 100644 frontend/impattern/patterns/94.png create mode 100644 frontend/impattern/patterns/95.png create mode 100644 frontend/impattern/patterns/96.png create mode 100644 frontend/impattern/patterns/a0.png create mode 100644 frontend/impattern/patterns/a1.png create mode 100644 frontend/impattern/patterns/a10.png create mode 100644 frontend/impattern/patterns/a11.png create mode 100644 frontend/impattern/patterns/a12.png create mode 100644 frontend/impattern/patterns/a13.png create mode 100644 frontend/impattern/patterns/a14.png create mode 100644 frontend/impattern/patterns/a15.png create mode 100644 frontend/impattern/patterns/a16.png create mode 100644 frontend/impattern/patterns/a17.png create mode 100644 frontend/impattern/patterns/a18.png create mode 100644 frontend/impattern/patterns/a19.png create mode 100644 frontend/impattern/patterns/a2.png create mode 100644 frontend/impattern/patterns/a20.png create mode 100644 frontend/impattern/patterns/a21.png create mode 100644 frontend/impattern/patterns/a22.png create mode 100644 frontend/impattern/patterns/a23.png create mode 100644 frontend/impattern/patterns/a24.png create mode 100644 frontend/impattern/patterns/a25.png create mode 100644 frontend/impattern/patterns/a26.png create mode 100644 frontend/impattern/patterns/a27.png create mode 100644 frontend/impattern/patterns/a28.png create mode 100644 frontend/impattern/patterns/a29.png create mode 100644 frontend/impattern/patterns/a3.png create mode 100644 frontend/impattern/patterns/a30.png create mode 100644 frontend/impattern/patterns/a31.png create mode 100644 frontend/impattern/patterns/a32.png create mode 100644 frontend/impattern/patterns/a33.png create mode 100644 frontend/impattern/patterns/a34.png create mode 100644 frontend/impattern/patterns/a35.png create mode 100644 frontend/impattern/patterns/a36.png create mode 100644 frontend/impattern/patterns/a37.png create mode 100644 frontend/impattern/patterns/a38.png create mode 100644 frontend/impattern/patterns/a39.png create mode 100644 frontend/impattern/patterns/a4.png create mode 100644 frontend/impattern/patterns/a40.png create mode 100644 frontend/impattern/patterns/a41.png create mode 100644 frontend/impattern/patterns/a5.png create mode 100644 frontend/impattern/patterns/a6.png create mode 100644 frontend/impattern/patterns/a7.png create mode 100644 frontend/impattern/patterns/a8.png create mode 100644 frontend/impattern/patterns/a9.png create mode 100644 frontend/impattern/semi_patterns/1.png create mode 100644 frontend/impattern/semi_patterns/10.png create mode 100644 frontend/impattern/semi_patterns/11.png create mode 100644 frontend/impattern/semi_patterns/12.png create mode 100644 frontend/impattern/semi_patterns/13.png create mode 100644 frontend/impattern/semi_patterns/14.png create mode 100644 frontend/impattern/semi_patterns/15.png create mode 100644 frontend/impattern/semi_patterns/16.png create mode 100644 frontend/impattern/semi_patterns/17.png create mode 100644 frontend/impattern/semi_patterns/18.png create mode 100644 frontend/impattern/semi_patterns/19.png create mode 100644 frontend/impattern/semi_patterns/2.png create mode 100644 frontend/impattern/semi_patterns/20.png create mode 100644 frontend/impattern/semi_patterns/21.png create mode 100644 frontend/impattern/semi_patterns/22.png create mode 100644 frontend/impattern/semi_patterns/23.png create mode 100644 frontend/impattern/semi_patterns/24.png create mode 100644 frontend/impattern/semi_patterns/25.png create mode 100644 frontend/impattern/semi_patterns/26.png create mode 100644 frontend/impattern/semi_patterns/27.png create mode 100644 frontend/impattern/semi_patterns/28.png create mode 100644 frontend/impattern/semi_patterns/29.png create mode 100644 frontend/impattern/semi_patterns/3.png create mode 100644 frontend/impattern/semi_patterns/30.png create mode 100644 frontend/impattern/semi_patterns/31.png create mode 100644 frontend/impattern/semi_patterns/32.png create mode 100644 frontend/impattern/semi_patterns/33.png create mode 100644 frontend/impattern/semi_patterns/34.png create mode 100644 frontend/impattern/semi_patterns/35.png create mode 100644 frontend/impattern/semi_patterns/36.png create mode 100644 frontend/impattern/semi_patterns/37.png create mode 100644 frontend/impattern/semi_patterns/38.png create mode 100644 frontend/impattern/semi_patterns/39.png create mode 100644 frontend/impattern/semi_patterns/4.png create mode 100644 frontend/impattern/semi_patterns/40.png create mode 100644 frontend/impattern/semi_patterns/41.png create mode 100644 frontend/impattern/semi_patterns/42.png create mode 100644 frontend/impattern/semi_patterns/43.png create mode 100644 frontend/impattern/semi_patterns/44.png create mode 100644 frontend/impattern/semi_patterns/45.png create mode 100644 frontend/impattern/semi_patterns/46.png create mode 100644 frontend/impattern/semi_patterns/47.png create mode 100644 frontend/impattern/semi_patterns/48.png create mode 100644 frontend/impattern/semi_patterns/49.png create mode 100644 frontend/impattern/semi_patterns/5.png create mode 100644 frontend/impattern/semi_patterns/50.png create mode 100644 frontend/impattern/semi_patterns/51.png create mode 100644 frontend/impattern/semi_patterns/52.png create mode 100644 frontend/impattern/semi_patterns/53.png create mode 100644 frontend/impattern/semi_patterns/54.png create mode 100644 frontend/impattern/semi_patterns/55.png create mode 100644 frontend/impattern/semi_patterns/56.png create mode 100644 frontend/impattern/semi_patterns/57.png create mode 100644 frontend/impattern/semi_patterns/58.png create mode 100644 frontend/impattern/semi_patterns/59.png create mode 100644 frontend/impattern/semi_patterns/6.png create mode 100644 frontend/impattern/semi_patterns/60.png create mode 100644 frontend/impattern/semi_patterns/61.png create mode 100644 frontend/impattern/semi_patterns/62.png create mode 100644 frontend/impattern/semi_patterns/63.png create mode 100644 frontend/impattern/semi_patterns/64.png create mode 100644 frontend/impattern/semi_patterns/65.png create mode 100644 frontend/impattern/semi_patterns/66.png create mode 100644 frontend/impattern/semi_patterns/67.png create mode 100644 frontend/impattern/semi_patterns/68.png create mode 100644 frontend/impattern/semi_patterns/69.png create mode 100644 frontend/impattern/semi_patterns/7.png create mode 100644 frontend/impattern/semi_patterns/70.png create mode 100644 frontend/impattern/semi_patterns/71.png create mode 100644 frontend/impattern/semi_patterns/72.png create mode 100644 frontend/impattern/semi_patterns/73.png create mode 100644 frontend/impattern/semi_patterns/74.png create mode 100644 frontend/impattern/semi_patterns/75.png create mode 100644 frontend/impattern/semi_patterns/76.png create mode 100644 frontend/impattern/semi_patterns/77.png create mode 100644 frontend/impattern/semi_patterns/78.png create mode 100644 frontend/impattern/semi_patterns/79.png create mode 100644 frontend/impattern/semi_patterns/8.png create mode 100644 frontend/impattern/semi_patterns/80.png create mode 100644 frontend/impattern/semi_patterns/81.png create mode 100644 frontend/impattern/semi_patterns/82.png create mode 100644 frontend/impattern/semi_patterns/83.png create mode 100644 frontend/impattern/semi_patterns/84.png create mode 100644 frontend/impattern/semi_patterns/85.png create mode 100644 frontend/impattern/semi_patterns/86.png create mode 100644 frontend/impattern/semi_patterns/87.png create mode 100644 frontend/impattern/semi_patterns/88.png create mode 100644 frontend/impattern/semi_patterns/89.png create mode 100644 frontend/impattern/semi_patterns/9.png create mode 100644 frontend/impattern/semi_patterns/90.png create mode 100644 frontend/impattern/semi_patterns/91.png create mode 100644 frontend/impattern/semi_patterns/92.png create mode 100644 frontend/impattern/semi_patterns/93.png create mode 100644 frontend/impattern/semi_patterns/94.png create mode 100644 frontend/impattern/semi_patterns/95.png create mode 100644 frontend/impattern/semi_patterns/96.png create mode 100644 frontend/impattern/semi_patterns/a0.png create mode 100644 frontend/impattern/semi_patterns/a1.png create mode 100644 frontend/impattern/semi_patterns/a10.png create mode 100644 frontend/impattern/semi_patterns/a11.png create mode 100644 frontend/impattern/semi_patterns/a12.png create mode 100644 frontend/impattern/semi_patterns/a13.png create mode 100644 frontend/impattern/semi_patterns/a14.png create mode 100644 frontend/impattern/semi_patterns/a15.png create mode 100644 frontend/impattern/semi_patterns/a16.png create mode 100644 frontend/impattern/semi_patterns/a17.png create mode 100644 frontend/impattern/semi_patterns/a18.png create mode 100644 frontend/impattern/semi_patterns/a19.png create mode 100644 frontend/impattern/semi_patterns/a2.png create mode 100644 frontend/impattern/semi_patterns/a20.png create mode 100644 frontend/impattern/semi_patterns/a21.png create mode 100644 frontend/impattern/semi_patterns/a22.png create mode 100644 frontend/impattern/semi_patterns/a23.png create mode 100644 frontend/impattern/semi_patterns/a24.png create mode 100644 frontend/impattern/semi_patterns/a25.png create mode 100644 frontend/impattern/semi_patterns/a26.png create mode 100644 frontend/impattern/semi_patterns/a27.png create mode 100644 frontend/impattern/semi_patterns/a28.png create mode 100644 frontend/impattern/semi_patterns/a29.png create mode 100644 frontend/impattern/semi_patterns/a3.png create mode 100644 frontend/impattern/semi_patterns/a30.png create mode 100644 frontend/impattern/semi_patterns/a31.png create mode 100644 frontend/impattern/semi_patterns/a32.png create mode 100644 frontend/impattern/semi_patterns/a33.png create mode 100644 frontend/impattern/semi_patterns/a34.png create mode 100644 frontend/impattern/semi_patterns/a35.png create mode 100644 frontend/impattern/semi_patterns/a36.png create mode 100644 frontend/impattern/semi_patterns/a37.png create mode 100644 frontend/impattern/semi_patterns/a38.png create mode 100644 frontend/impattern/semi_patterns/a39.png create mode 100644 frontend/impattern/semi_patterns/a4.png create mode 100644 frontend/impattern/semi_patterns/a40.png create mode 100644 frontend/impattern/semi_patterns/a41.png create mode 100644 frontend/impattern/semi_patterns/a5.png create mode 100644 frontend/impattern/semi_patterns/a6.png create mode 100644 frontend/impattern/semi_patterns/a7.png create mode 100644 frontend/impattern/semi_patterns/a8.png create mode 100644 frontend/impattern/semi_patterns/a9.png create mode 100644 frontend/impattern/sketch.html create mode 100644 frontend/impattern/test.gif create mode 100644 frontend/js/ZeroClipboard.js create mode 120000 frontend/js/colordictbackup.js create mode 120000 frontend/js/colors_iframe.js create mode 120000 frontend/js/display_result.js create mode 100644 frontend/js/gallery_isotope_config.js create mode 120000 frontend/js/imbreak-main.js create mode 120000 frontend/js/imgrid-main.js create mode 100644 frontend/js/index.html create mode 120000 frontend/js/inputs.js create mode 120000 frontend/js/jcookie.js create mode 100644 frontend/js/jquery-1.4.4.min.js create mode 100644 frontend/js/jquery-1.5.2.min.js create mode 100644 frontend/js/jquery-1.6.2.min.js create mode 120000 frontend/js/jquery-1.6.4.min.js create mode 100644 frontend/js/jquery-1.7.2.min.js create mode 100644 frontend/js/jquery-ui-1.8.16.custom.min.js create mode 120000 frontend/js/jquery-ui.min.js create mode 120000 frontend/js/jquery.cookie.js create mode 100644 frontend/js/jquery.isotope.min.js create mode 100644 frontend/js/jquery.js create mode 100644 frontend/js/jquery.md5.js create mode 120000 frontend/js/jquery.min.js create mode 120000 frontend/js/main.js create mode 120000 frontend/js/maincopy.js create mode 100644 frontend/js/okgradient-0.1.js create mode 120000 frontend/js/overlay.js create mode 100644 frontend/js/pbembed.js create mode 100644 frontend/js/photoblaster-0.1.js create mode 120000 frontend/js/popup.js create mode 120000 frontend/js/preview.js create mode 100644 frontend/js/requests.js create mode 120000 frontend/js/sketch.js create mode 120000 frontend/js/sliders.js create mode 100644 frontend/js/soundmanager2.js create mode 100644 frontend/js/titleScrambler.js create mode 120000 frontend/js/urls.js create mode 120000 frontend/js/username.js create mode 100644 frontend/js/what.html create mode 100644 frontend/js/zepto-0.7.zip create mode 100644 frontend/js/zepto.js create mode 100644 frontend/server/simple_proxy.py (limited to 'frontend') 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 new file mode 100755 index 0000000..6a39695 Binary files /dev/null and b/frontend/im/#ffdead-black_1319995689.jpg differ 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 new file mode 100755 index 0000000..fead3f4 Binary files /dev/null and b/frontend/im/1327390579392dumpfmfrankhatscolor2tablet_1327477683_1327478593_1327480237.gif differ 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 new file mode 100644 index 0000000..3c51d74 Binary files /dev/null and b/frontend/im/OLD/01/_1424365694_frankhats.gif differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/13/imgrid_1424839118_imgrid_1424839001_ymba2ut_pepper_pepper.png differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/26/imgrid_1424839138_imgrid_1424839001_ymba2ut_pepper_pepper.png differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/2a/imgrid_1424839194_imgrid_1424839001_ymba2ut_pepper_pepper.png differ diff --git a/frontend/im/OLD/37/imBreak_1424908970_xx_abridged___.gif b/frontend/im/OLD/37/imBreak_1424908970_xx_abridged___.gif new file mode 100644 index 0000000..bcc8038 Binary files /dev/null and b/frontend/im/OLD/37/imBreak_1424908970_xx_abridged___.gif differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/3a/imgrid_1424839041_imgrid_1424839001_ymba2ut_pepper_pepper.png differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/61/imgrid_1424839095_imgrid_1424839001_ymba2ut_pepper_pepper.png differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/61/imgrid_1424839214_imgrid_1424839001_ymba2ut_pepper_pepper.png differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/71/imgrid_1424839153_imgrid_1424839001_ymba2ut_pepper_pepper.png differ diff --git a/frontend/im/OLD/8c/_1424361556_dvvidpw.gif b/frontend/im/OLD/8c/_1424361556_dvvidpw.gif new file mode 100644 index 0000000..3c51d74 Binary files /dev/null and b/frontend/im/OLD/8c/_1424361556_dvvidpw.gif differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/91/imgrid_1424839066_imgrid_1424839001_ymba2ut_pepper_pepper.png differ diff --git a/frontend/im/OLD/9f/imgrid_1424839118_pepper.png b/frontend/im/OLD/9f/imgrid_1424839118_pepper.png new file mode 100644 index 0000000..0c8ee7d Binary files /dev/null and b/frontend/im/OLD/9f/imgrid_1424839118_pepper.png differ diff --git a/frontend/im/OLD/ba/imBreak_1424908974_xx_abridged___.gif b/frontend/im/OLD/ba/imBreak_1424908974_xx_abridged___.gif new file mode 100644 index 0000000..f0b981d Binary files /dev/null and b/frontend/im/OLD/ba/imBreak_1424908974_xx_abridged___.gif differ diff --git a/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365488_mmi.gif b/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365488_mmi.gif new file mode 100644 index 0000000..3c51d74 Binary files /dev/null and b/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365488_mmi.gif differ diff --git a/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365545_mmi.gif b/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365545_mmi.gif new file mode 100644 index 0000000..3c51d74 Binary files /dev/null and b/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365545_mmi.gif differ diff --git a/frontend/im/OLD/bc/new_1424372778.gif b/frontend/im/OLD/bc/new_1424372778.gif new file mode 100644 index 0000000..3c51d74 Binary files /dev/null and b/frontend/im/OLD/bc/new_1424372778.gif differ diff --git a/frontend/im/OLD/bc/new_1424372876.gif b/frontend/im/OLD/bc/new_1424372876.gif new file mode 100644 index 0000000..3c51d74 Binary files /dev/null and b/frontend/im/OLD/bc/new_1424372876.gif differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/cf/imgrid_1424839174_imgrid_1424839001_ymba2ut_pepper_pepper.png differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/d8/imgrid_1424839121_imgrid_1424839001_ymba2ut_pepper_pepper.png differ diff --git a/frontend/im/OLD/e6/imBreak_1424908981_xx_abridged___.gif b/frontend/im/OLD/e6/imBreak_1424908981_xx_abridged___.gif new file mode 100644 index 0000000..04cc98f Binary files /dev/null and b/frontend/im/OLD/e6/imBreak_1424908981_xx_abridged___.gif differ diff --git a/frontend/im/OLD/e9/_1424362273_dvvidpw.gif b/frontend/im/OLD/e9/_1424362273_dvvidpw.gif new file mode 100644 index 0000000..3c51d74 Binary files /dev/null and b/frontend/im/OLD/e9/_1424362273_dvvidpw.gif differ 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 new file mode 100644 index 0000000..266d54f Binary files /dev/null and b/frontend/im/OLD/ec/imgrid_1424839230_imgrid_1424839001_ymba2ut_pepper_pepper.png differ diff --git a/frontend/im/OLD/f8/_1424370030.gif b/frontend/im/OLD/f8/_1424370030.gif new file mode 100644 index 0000000..3c51d74 Binary files /dev/null and b/frontend/im/OLD/f8/_1424370030.gif differ 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 @@ + + + +Photoblaster API + + + + + +

Push this button to test the API:

+

+ + + diff --git a/frontend/im/arrow_pointing_left.png b/frontend/im/arrow_pointing_left.png new file mode 100755 index 0000000..ba1fb53 Binary files /dev/null and b/frontend/im/arrow_pointing_left.png differ 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 @@ + + + +PHOTOBLASTER + + + + + + + + + + +
+
+ + +
+ + +
+ + + + + + + + + + + + + +
+ + + +
+ + + % +
+ + + + + px +
+ + + px +
+ + + + + + List of Color Names +
+ + + +
+ + + + + +
+ + + + + + + + +
+ + + +
+ + + ° +
+ + + + + + + + + + + + +
+ + + + + + +
+ + +

+ + Oh now it's on....payback time → FOTO FUCKER + + + Transform images in 3D → Grid Generator + + Gradients make everything better → Gradient Generator +

+ +

+ See what people are making → Image Gallery
+ + The best ones go here → Photoblaster Tumblr + + View a random selection → Random Gallery
+ + + Things you've made → Your Gallery
+
+

+
+ +
+ →
+
+ + +
+ +
+
+
+ + + + + + 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 @@ + + + + + + + + +
+

List of Color Names

+
+ +

a list of named colors for use with PHOTOBLASTER:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameColorRGBHex
snowsnowrgb(255, 250, 250)#FFFAFA
snow1snow1rgb(255, 250, 250)#FFFAFA
snow2snow2rgb(238, 233, 233)#EEE9E9
RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
snow3snow3rgb(205, 201, 201)#CDC9C9
LightCoralLightCoralrgb(240, 128, 128)#F08080
IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
brown1brown1rgb(255, 64, 64)#FF4040
firebrick1firebrick1rgb(255, 48, 48)#FF3030
brown2brown2rgb(238, 59, 59)#EE3B3B
IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
snow4snow4rgb(139, 137, 137)#8B8989
brown3brown3rgb(205, 51, 51)#CD3333
redredrgb(255, 0, 0)#FF0000
red1red1rgb(255, 0, 0)#FF0000
RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
firebrick3firebrick3rgb(205, 38, 38)#CD2626
red2red2rgb(238, 0, 0)#EE0000
firebrickfirebrickrgb(178, 34, 34)#B22222
brownbrownrgb(165, 42, 42)#A52A2A
red3red3rgb(205, 0, 0)#CD0000
IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
brown4brown4rgb(139, 35, 35)#8B2323
firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
DarkRedDarkRedrgb(139, 0, 0)#8B0000
red4red4rgb(139, 0, 0)#8B0000
maroonmaroonrgb(128, 0, 0)#800000
LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
LightPink3LightPink3rgb(205, 140, 149)#CD8C95
LightPink4LightPink4rgb(139, 95, 101)#8B5F65
LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
pinkpinkrgb(255, 192, 203)#FFC0CB
crimsoncrimsonrgb(220, 20, 60)#DC143C
pink1pink1rgb(255, 181, 197)#FFB5C5
pink2pink2rgb(238, 169, 184)#EEA9B8
pink3pink3rgb(205, 145, 158)#CD919E
pink4pink4rgb(139, 99, 108)#8B636C
PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
maroonmaroonrgb(176, 48, 96)#B03060
HotPink3HotPink3rgb(205, 96, 144)#CD6090
VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
HotPink4HotPink4rgb(139, 58, 98)#8B3A62
HotPinkHotPinkrgb(255, 105, 180)#FF69B4
DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
maroon1maroon1rgb(255, 52, 179)#FF34B3
maroon2maroon2rgb(238, 48, 167)#EE30A7
maroon3maroon3rgb(205, 41, 144)#CD2990
maroon4maroon4rgb(139, 28, 98)#8B1C62
MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
VioletRedVioletRedrgb(208, 32, 144)#D02090
orchid2orchid2rgb(238, 122, 233)#EE7AE9
orchidorchidrgb(218, 112, 214)#DA70D6
orchid1orchid1rgb(255, 131, 250)#FF83FA
orchid3orchid3rgb(205, 105, 201)#CD69C9
orchid4orchid4rgb(139, 71, 137)#8B4789
thistle1thistle1rgb(255, 225, 255)#FFE1FF
thistle2thistle2rgb(238, 210, 238)#EED2EE
plum1plum1rgb(255, 187, 255)#FFBBFF
plum2plum2rgb(238, 174, 238)#EEAEEE
thistlethistlergb(216, 191, 216)#D8BFD8
thistle3thistle3rgb(205, 181, 205)#CDB5CD
plumplumrgb(221, 160, 221)#DDA0DD
violetvioletrgb(238, 130, 238)#EE82EE
plum3plum3rgb(205, 150, 205)#CD96CD
thistle4thistle4rgb(139, 123, 139)#8B7B8B
fuchsiafuchsiargb(255, 0, 255)#FF00FF
magentamagentargb(255, 0, 255)#FF00FF
magenta1magenta1rgb(255, 0, 255)#FF00FF
plum4plum4rgb(139, 102, 139)#8B668B
magenta2magenta2rgb(238, 0, 238)#EE00EE
magenta3magenta3rgb(205, 0, 205)#CD00CD
DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
magenta4magenta4rgb(139, 0, 139)#8B008B
purplepurplergb(128, 0, 128)#800080
MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
purplepurplergb(160, 32, 240)#A020F0
indigoindigorgb( 75, 0, 130)#4B0082
BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
purple2purple2rgb(145, 44, 238)#912CEE
purple3purple3rgb(125, 38, 205)#7D26CD
purple4purple4rgb( 85, 26, 139)#551A8B
purple1purple1rgb(155, 48, 255)#9B30FF
MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
lavenderlavenderrgb(230, 230, 250)#E6E6FA
bluebluergb( 0, 0, 255)#0000FF
blue1blue1rgb( 0, 0, 255)#0000FF
blue2blue2rgb( 0, 0, 238)#0000EE
blue3blue3rgb( 0, 0, 205)#0000CD
MediumBlueMediumBluergb( 0, 0, 205)#0000CD
blue4blue4rgb( 0, 0, 139)#00008B
DarkBlueDarkBluergb( 0, 0, 139)#00008B
MidnightBlueMidnightBluergb( 25, 25, 112)#191970
navynavyrgb( 0, 0, 128)#000080
NavyBlueNavyBluergb( 0, 0, 128)#000080
RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
SlateGraySlateGrayrgb(112, 128, 144)#708090
SlateGreySlateGreyrgb(112, 128, 144)#708090
DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
SteelBlueSteelBluergb( 70, 130, 180)#4682B4
SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
SkyBlueSkyBluergb(135, 206, 235)#87CEEB
LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
LightBlueLightBluergb(173, 216, 230)#ADD8E6
LightBlue4LightBlue4rgb(104, 131, 139)#68838B
PowderBluePowderBluergb(176, 224, 230)#B0E0E6
CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
turquoise4turquoise4rgb( 0, 134, 139)#00868B
cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
azureazurergb(240, 255, 255)#F0FFFF
azure1azure1rgb(240, 255, 255)#F0FFFF
LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
azure2azure2rgb(224, 238, 238)#E0EEEE
LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
azure3azure3rgb(193, 205, 205)#C1CDCD
LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
azure4azure4rgb(131, 139, 139)#838B8B
LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
aquaaquargb( 0, 255, 255)#00FFFF
cyancyanrgb( 0, 255, 255)#00FFFF
cyan1cyan1rgb( 0, 255, 255)#00FFFF
PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
cyan2cyan2rgb( 0, 238, 238)#00EEEE
DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
cyan3cyan3rgb( 0, 205, 205)#00CDCD
cyan4cyan4rgb( 0, 139, 139)#008B8B
DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
tealtealrgb( 0, 128, 128)#008080
DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
turquoiseturquoisergb( 64, 224, 208)#40E0D0
aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
aquamarineaquamarinergb(127, 255, 212)#7FFFD4
aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
honeydewhoneydewrgb(240, 255, 240)#F0FFF0
honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
LightGreenLightGreenrgb(144, 238, 144)#90EE90
PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
honeydew4honeydew4rgb(131, 139, 131)#838B83
green1green1rgb( 0, 255, 0)#00FF00
limelimergb( 0, 255, 0)#00FF00
LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
green2green2rgb( 0, 238, 0)#00EE00
PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
green3green3rgb( 0, 205, 0)#00CD00
ForestGreenForestGreenrgb( 34, 139, 34)#228B22
green4green4rgb( 0, 139, 0)#008B00
greengreenrgb( 0, 128, 0)#008000
DarkGreenDarkGreenrgb( 0, 100, 0)#006400
LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
chartreusechartreusergb(127, 255, 0)#7FFF00
chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
ivoryivoryrgb(255, 255, 240)#FFFFF0
ivory1ivory1rgb(255, 255, 240)#FFFFF0
LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
beigebeigergb(245, 245, 220)#F5F5DC
ivory2ivory2rgb(238, 238, 224)#EEEEE0
LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
ivory3ivory3rgb(205, 205, 193)#CDCDC1
LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
ivory4ivory4rgb(139, 139, 131)#8B8B83
LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
yellowyellowrgb(255, 255, 0)#FFFF00
yellow1yellow1rgb(255, 255, 0)#FFFF00
yellow2yellow2rgb(238, 238, 0)#EEEE00
yellow3yellow3rgb(205, 205, 0)#CDCD00
yellow4yellow4rgb(139, 139, 0)#8B8B00
oliveolivergb(128, 128, 0)#808000
DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
khaki2khaki2rgb(238, 230, 133)#EEE685
LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
khaki1khaki1rgb(255, 246, 143)#FFF68F
khaki3khaki3rgb(205, 198, 115)#CDC673
khaki4khaki4rgb(139, 134, 78)#8B864E
PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
khakikhakirgb(240, 230, 140)#F0E68C
LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
goldgoldrgb(255, 215, 0)#FFD700
gold1gold1rgb(255, 215, 0)#FFD700
gold2gold2rgb(238, 201, 0)#EEC900
gold3gold3rgb(205, 173, 0)#CDAD00
gold4gold4rgb(139, 117, 0)#8B7500
LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
goldenrodgoldenrodrgb(218, 165, 32)#DAA520
goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
wheat2wheat2rgb(238, 216, 174)#EED8AE
OldLaceOldLacergb(253, 245, 230)#FDF5E6
wheatwheatrgb(245, 222, 179)#F5DEB3
wheat1wheat1rgb(255, 231, 186)#FFE7BA
wheat3wheat3rgb(205, 186, 150)#CDBA96
orangeorangergb(255, 165, 0)#FFA500
orange1orange1rgb(255, 165, 0)#FFA500
orange2orange2rgb(238, 154, 0)#EE9A00
orange3orange3rgb(205, 133, 0)#CD8500
orange4orange4rgb(139, 90, 0)#8B5A00
wheat4wheat4rgb(139, 126, 102)#8B7E66
moccasinmoccasinrgb(255, 228, 181)#FFE4B5
PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
tantanrgb(210, 180, 140)#D2B48C
bisque4bisque4rgb(139, 125, 107)#8B7D6B
burlywoodburlywoodrgb(222, 184, 135)#DEB887
AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
burlywood1burlywood1rgb(255, 211, 155)#FFD39B
burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
burlywood2burlywood2rgb(238, 197, 145)#EEC591
AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
burlywood4burlywood4rgb(139, 115, 85)#8B7355
AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
bisque2bisque2rgb(238, 213, 183)#EED5B7
bisquebisquergb(255, 228, 196)#FFE4C4
bisque1bisque1rgb(255, 228, 196)#FFE4C4
bisque3bisque3rgb(205, 183, 158)#CDB79E
DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
linenlinenrgb(250, 240, 230)#FAF0E6
DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
peruperurgb(205, 133, 63)#CD853F
tan1tan1rgb(255, 165, 79)#FFA54F
tan2tan2rgb(238, 154, 73)#EE9A49
tan3tan3rgb(205, 133, 63)#CD853F
tan4tan4rgb(139, 90, 43)#8B5A2B
PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
seashell4seashell4rgb(139, 134, 130)#8B8682
seashell2seashell2rgb(238, 229, 222)#EEE5DE
seashell3seashell3rgb(205, 197, 191)#CDC5BF
chocolatechocolatergb(210, 105, 30)#D2691E
chocolate1chocolate1rgb(255, 127, 36)#FF7F24
chocolate2chocolate2rgb(238, 118, 33)#EE7621
chocolate3chocolate3rgb(205, 102, 29)#CD661D
chocolate4chocolate4rgb(139, 69, 19)#8B4513
SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
seashellseashellrgb(255, 245, 238)#FFF5EE
seashell1seashell1rgb(255, 245, 238)#FFF5EE
sienna4sienna4rgb(139, 71, 38)#8B4726
siennasiennargb(160, 82, 45)#A0522D
sienna1sienna1rgb(255, 130, 71)#FF8247
sienna2sienna2rgb(238, 121, 66)#EE7942
sienna3sienna3rgb(205, 104, 57)#CD6839
LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
coralcoralrgb(255, 127, 80)#FF7F50
OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
salmon1salmon1rgb(255, 140, 105)#FF8C69
salmon2salmon2rgb(238, 130, 98)#EE8262
salmon3salmon3rgb(205, 112, 84)#CD7054
salmon4salmon4rgb(139, 76, 57)#8B4C39
coral1coral1rgb(255, 114, 86)#FF7256
coral2coral2rgb(238, 106, 80)#EE6A50
coral3coral3rgb(205, 91, 69)#CD5B45
coral4coral4rgb(139, 62, 47)#8B3E2F
tomato4tomato4rgb(139, 54, 38)#8B3626
tomatotomatorgb(255, 99, 71)#FF6347
tomato1tomato1rgb(255, 99, 71)#FF6347
tomato2tomato2rgb(238, 92, 66)#EE5C42
tomato3tomato3rgb(205, 79, 57)#CD4F39
MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
salmonsalmonrgb(250, 128, 114)#FA8072
MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
whitewhitergb(255, 255, 255)#FFFFFF
gray100gray100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
gray99gray99rgb(252, 252, 252)#FCFCFC
grey99grey99rgb(252, 252, 252)#FCFCFC
gray98gray98rgb(250, 250, 250)#FAFAFA
grey98grey98rgb(250, 250, 250)#FAFAFA
gray97gray97rgb(247, 247, 247)#F7F7F7
grey97grey97rgb(247, 247, 247)#F7F7F7
gray96gray96rgb(245, 245, 245)#F5F5F5
grey96grey96rgb(245, 245, 245)#F5F5F5
WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
gray95gray95rgb(242, 242, 242)#F2F2F2
grey95grey95rgb(242, 242, 242)#F2F2F2
gray94gray94rgb(240, 240, 240)#F0F0F0
grey94grey94rgb(240, 240, 240)#F0F0F0
gray93gray93rgb(237, 237, 237)#EDEDED
grey93grey93rgb(237, 237, 237)#EDEDED
gray92gray92rgb(235, 235, 235)#EBEBEB
grey92grey92rgb(235, 235, 235)#EBEBEB
gray91gray91rgb(232, 232, 232)#E8E8E8
grey91grey91rgb(232, 232, 232)#E8E8E8
gray90gray90rgb(229, 229, 229)#E5E5E5
grey90grey90rgb(229, 229, 229)#E5E5E5
gray89gray89rgb(227, 227, 227)#E3E3E3
grey89grey89rgb(227, 227, 227)#E3E3E3
gray88gray88rgb(224, 224, 224)#E0E0E0
grey88grey88rgb(224, 224, 224)#E0E0E0
gray87gray87rgb(222, 222, 222)#DEDEDE
grey87grey87rgb(222, 222, 222)#DEDEDE
gainsborogainsbororgb(220, 220, 220)#DCDCDC
gray86gray86rgb(219, 219, 219)#DBDBDB
grey86grey86rgb(219, 219, 219)#DBDBDB
gray85gray85rgb(217, 217, 217)#D9D9D9
grey85grey85rgb(217, 217, 217)#D9D9D9
gray84gray84rgb(214, 214, 214)#D6D6D6
grey84grey84rgb(214, 214, 214)#D6D6D6
gray83gray83rgb(212, 212, 212)#D4D4D4
grey83grey83rgb(212, 212, 212)#D4D4D4
LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
gray82gray82rgb(209, 209, 209)#D1D1D1
grey82grey82rgb(209, 209, 209)#D1D1D1
gray81gray81rgb(207, 207, 207)#CFCFCF
grey81grey81rgb(207, 207, 207)#CFCFCF
gray80gray80rgb(204, 204, 204)#CCCCCC
grey80grey80rgb(204, 204, 204)#CCCCCC
gray79gray79rgb(201, 201, 201)#C9C9C9
grey79grey79rgb(201, 201, 201)#C9C9C9
gray78gray78rgb(199, 199, 199)#C7C7C7
grey78grey78rgb(199, 199, 199)#C7C7C7
gray77gray77rgb(196, 196, 196)#C4C4C4
grey77grey77rgb(196, 196, 196)#C4C4C4
gray76gray76rgb(194, 194, 194)#C2C2C2
grey76grey76rgb(194, 194, 194)#C2C2C2
silversilverrgb(192, 192, 192)#C0C0C0
gray75gray75rgb(191, 191, 191)#BFBFBF
grey75grey75rgb(191, 191, 191)#BFBFBF
gray74gray74rgb(189, 189, 189)#BDBDBD
grey74grey74rgb(189, 189, 189)#BDBDBD
gray73gray73rgb(186, 186, 186)#BABABA
grey73grey73rgb(186, 186, 186)#BABABA
gray72gray72rgb(184, 184, 184)#B8B8B8
grey72grey72rgb(184, 184, 184)#B8B8B8
gray71gray71rgb(181, 181, 181)#B5B5B5
grey71grey71rgb(181, 181, 181)#B5B5B5
gray70gray70rgb(179, 179, 179)#B3B3B3
grey70grey70rgb(179, 179, 179)#B3B3B3
gray69gray69rgb(176, 176, 176)#B0B0B0
grey69grey69rgb(176, 176, 176)#B0B0B0
gray68gray68rgb(173, 173, 173)#ADADAD
grey68grey68rgb(173, 173, 173)#ADADAD
gray67gray67rgb(171, 171, 171)#ABABAB
grey67grey67rgb(171, 171, 171)#ABABAB
DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
gray66gray66rgb(168, 168, 168)#A8A8A8
grey66grey66rgb(168, 168, 168)#A8A8A8
gray65gray65rgb(166, 166, 166)#A6A6A6
grey65grey65rgb(166, 166, 166)#A6A6A6
gray64gray64rgb(163, 163, 163)#A3A3A3
grey64grey64rgb(163, 163, 163)#A3A3A3
gray63gray63rgb(161, 161, 161)#A1A1A1
grey63grey63rgb(161, 161, 161)#A1A1A1
gray62gray62rgb(158, 158, 158)#9E9E9E
grey62grey62rgb(158, 158, 158)#9E9E9E
gray61gray61rgb(156, 156, 156)#9C9C9C
grey61grey61rgb(156, 156, 156)#9C9C9C
gray60gray60rgb(153, 153, 153)#999999
grey60grey60rgb(153, 153, 153)#999999
gray59gray59rgb(150, 150, 150)#969696
grey59grey59rgb(150, 150, 150)#969696
gray58gray58rgb(148, 148, 148)#949494
grey58grey58rgb(148, 148, 148)#949494
gray57gray57rgb(145, 145, 145)#919191
grey57grey57rgb(145, 145, 145)#919191
gray56gray56rgb(143, 143, 143)#8F8F8F
grey56grey56rgb(143, 143, 143)#8F8F8F
gray55gray55rgb(140, 140, 140)#8C8C8C
grey55grey55rgb(140, 140, 140)#8C8C8C
gray54gray54rgb(138, 138, 138)#8A8A8A
grey54grey54rgb(138, 138, 138)#8A8A8A
gray53gray53rgb(135, 135, 135)#878787
grey53grey53rgb(135, 135, 135)#878787
gray52gray52rgb(133, 133, 133)#858585
grey52grey52rgb(133, 133, 133)#858585
gray51gray51rgb(130, 130, 130)#828282
grey51grey51rgb(130, 130, 130)#828282
fractalfractalrgb(128, 128, 128)#808080
gray50gray50rgb(127, 127, 127)#7F7F7F
grey50grey50rgb(127, 127, 127)#7F7F7F
graygrayrgb(126, 126, 126)#7E7E7E
gray49gray49rgb(125, 125, 125)#7D7D7D
grey49grey49rgb(125, 125, 125)#7D7D7D
gray48gray48rgb(122, 122, 122)#7A7A7A
grey48grey48rgb(122, 122, 122)#7A7A7A
gray47gray47rgb(120, 120, 120)#787878
grey47grey47rgb(120, 120, 120)#787878
gray46gray46rgb(117, 117, 117)#757575
grey46grey46rgb(117, 117, 117)#757575
gray45gray45rgb(115, 115, 115)#737373
grey45grey45rgb(115, 115, 115)#737373
gray44gray44rgb(112, 112, 112)#707070
grey44grey44rgb(112, 112, 112)#707070
gray43gray43rgb(110, 110, 110)#6E6E6E
grey43grey43rgb(110, 110, 110)#6E6E6E
gray42gray42rgb(107, 107, 107)#6B6B6B
grey42grey42rgb(107, 107, 107)#6B6B6B
DimGrayDimGrayrgb(105, 105, 105)#696969
DimGreyDimGreyrgb(105, 105, 105)#696969
gray41gray41rgb(105, 105, 105)#696969
grey41grey41rgb(105, 105, 105)#696969
gray40gray40rgb(102, 102, 102)#666666
grey40grey40rgb(102, 102, 102)#666666
gray39gray39rgb( 99, 99, 99)#636363
grey39grey39rgb( 99, 99, 99)#636363
gray38gray38rgb( 97, 97, 97)#616161
grey38grey38rgb( 97, 97, 97)#616161
gray37gray37rgb( 94, 94, 94)#5E5E5E
grey37grey37rgb( 94, 94, 94)#5E5E5E
gray36gray36rgb( 92, 92, 92)#5C5C5C
grey36grey36rgb( 92, 92, 92)#5C5C5C
gray35gray35rgb( 89, 89, 89)#595959
grey35grey35rgb( 89, 89, 89)#595959
gray34gray34rgb( 87, 87, 87)#575757
grey34grey34rgb( 87, 87, 87)#575757
gray33gray33rgb( 84, 84, 84)#545454
grey33grey33rgb( 84, 84, 84)#545454
gray32gray32rgb( 82, 82, 82)#525252
grey32grey32rgb( 82, 82, 82)#525252
gray31gray31rgb( 79, 79, 79)#4F4F4F
grey31grey31rgb( 79, 79, 79)#4F4F4F
gray30gray30rgb( 77, 77, 77)#4D4D4D
grey30grey30rgb( 77, 77, 77)#4D4D4D
gray29gray29rgb( 74, 74, 74)#4A4A4A
grey29grey29rgb( 74, 74, 74)#4A4A4A
gray28gray28rgb( 71, 71, 71)#474747
grey28grey28rgb( 71, 71, 71)#474747
gray27gray27rgb( 69, 69, 69)#454545
grey27grey27rgb( 69, 69, 69)#454545
gray26gray26rgb( 66, 66, 66)#424242
grey26grey26rgb( 66, 66, 66)#424242
gray25gray25rgb( 64, 64, 64)#404040
grey25grey25rgb( 64, 64, 64)#404040
gray24gray24rgb( 61, 61, 61)#3D3D3D
grey24grey24rgb( 61, 61, 61)#3D3D3D
gray23gray23rgb( 59, 59, 59)#3B3B3B
grey23grey23rgb( 59, 59, 59)#3B3B3B
gray22gray22rgb( 56, 56, 56)#383838
grey22grey22rgb( 56, 56, 56)#383838
gray21gray21rgb( 54, 54, 54)#363636
grey21grey21rgb( 54, 54, 54)#363636
gray20gray20rgb( 51, 51, 51)#333333
grey20grey20rgb( 51, 51, 51)#333333
gray19gray19rgb( 48, 48, 48)#303030
grey19grey19rgb( 48, 48, 48)#303030
gray18gray18rgb( 46, 46, 46)#2E2E2E
grey18grey18rgb( 46, 46, 46)#2E2E2E
gray17gray17rgb( 43, 43, 43)#2B2B2B
grey17grey17rgb( 43, 43, 43)#2B2B2B
gray16gray16rgb( 41, 41, 41)#292929
grey16grey16rgb( 41, 41, 41)#292929
gray15gray15rgb( 38, 38, 38)#262626
grey15grey15rgb( 38, 38, 38)#262626
gray14gray14rgb( 36, 36, 36)#242424
grey14grey14rgb( 36, 36, 36)#242424
gray13gray13rgb( 33, 33, 33)#212121
grey13grey13rgb( 33, 33, 33)#212121
gray12gray12rgb( 31, 31, 31)#1F1F1F
grey12grey12rgb( 31, 31, 31)#1F1F1F
gray11gray11rgb( 28, 28, 28)#1C1C1C
grey11grey11rgb( 28, 28, 28)#1C1C1C
gray10gray10rgb( 26, 26, 26)#1A1A1A
grey10grey10rgb( 26, 26, 26)#1A1A1A
gray9gray9rgb( 23, 23, 23)#171717
grey9grey9rgb( 23, 23, 23)#171717
gray8gray8rgb( 20, 20, 20)#141414
grey8grey8rgb( 20, 20, 20)#141414
gray7gray7rgb( 18, 18, 18)#121212
grey7grey7rgb( 18, 18, 18)#121212
gray6gray6rgb( 15, 15, 15)#0F0F0F
grey6grey6rgb( 15, 15, 15)#0F0F0F
gray5gray5rgb( 13, 13, 13)#0D0D0D
grey5grey5rgb( 13, 13, 13)#0D0D0D
gray4gray4rgb( 10, 10, 10)#0A0A0A
grey4grey4rgb( 10, 10, 10)#0A0A0A
gray3gray3rgb( 8, 8, 8)#080808
grey3grey3rgb( 8, 8, 8)#080808
gray2gray2rgb( 5, 5, 5)#050505
grey2grey2rgb( 5, 5, 5)#050505
gray1gray1rgb( 3, 3, 3)#030303
grey1grey1rgb( 3, 3, 3)#030303
blackblackrgb( 0, 0, 0)#000000
gray0gray0rgb( 0, 0, 0)#000000
grey0grey0rgb( 0, 0, 0)#000000
opaqueopaquergb( 0, 0, 0)#000000
nonenonergba( 0, 0, 0, 0.0)#00000000
transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
+ +
+ +
+ + 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 new file mode 100644 index 0000000..ec01f6a Binary files /dev/null and b/frontend/im/colors/images/Thumbs.db differ diff --git a/frontend/im/colors/images/bg.dither.gif b/frontend/im/colors/images/bg.dither.gif new file mode 100644 index 0000000..670df08 Binary files /dev/null and b/frontend/im/colors/images/bg.dither.gif differ diff --git a/frontend/im/colors/images/blank.gif b/frontend/im/colors/images/blank.gif new file mode 100644 index 0000000..35d42e8 Binary files /dev/null and b/frontend/im/colors/images/blank.gif differ diff --git a/frontend/im/colors/images/fancybox_loading.gif b/frontend/im/colors/images/fancybox_loading.gif new file mode 100644 index 0000000..a03a40c Binary files /dev/null and b/frontend/im/colors/images/fancybox_loading.gif differ diff --git a/frontend/im/colors/images/fancybox_loading@2x.gif b/frontend/im/colors/images/fancybox_loading@2x.gif new file mode 100644 index 0000000..9205aeb Binary files /dev/null and b/frontend/im/colors/images/fancybox_loading@2x.gif differ diff --git a/frontend/im/colors/images/fancybox_overlay.png b/frontend/im/colors/images/fancybox_overlay.png new file mode 100644 index 0000000..a439139 Binary files /dev/null and b/frontend/im/colors/images/fancybox_overlay.png differ diff --git a/frontend/im/colors/images/fancybox_sprite.png b/frontend/im/colors/images/fancybox_sprite.png new file mode 100644 index 0000000..fd8d5ca Binary files /dev/null and b/frontend/im/colors/images/fancybox_sprite.png differ diff --git a/frontend/im/colors/images/fancybox_sprite@2x.png b/frontend/im/colors/images/fancybox_sprite@2x.png new file mode 100644 index 0000000..d0e4779 Binary files /dev/null and b/frontend/im/colors/images/fancybox_sprite@2x.png differ diff --git a/frontend/im/colors/images/gradient.jpg b/frontend/im/colors/images/gradient.jpg new file mode 100644 index 0000000..f3ff9f9 Binary files /dev/null and b/frontend/im/colors/images/gradient.jpg differ diff --git a/frontend/im/colors/images/hoverbackground.jpg b/frontend/im/colors/images/hoverbackground.jpg new file mode 100644 index 0000000..c1ef116 Binary files /dev/null and b/frontend/im/colors/images/hoverbackground.jpg differ diff --git a/frontend/im/colors/images/imcupbg.jpg b/frontend/im/colors/images/imcupbg.jpg new file mode 100644 index 0000000..b3cf3f5 Binary files /dev/null and b/frontend/im/colors/images/imcupbg.jpg differ diff --git a/frontend/im/colors/images/user_convo.png b/frontend/im/colors/images/user_convo.png new file mode 100644 index 0000000..9d3d55e Binary files /dev/null and b/frontend/im/colors/images/user_convo.png differ diff --git a/frontend/im/colors/images/vase.png b/frontend/im/colors/images/vase.png new file mode 100644 index 0000000..153e72b Binary files /dev/null and b/frontend/im/colors/images/vase.png differ diff --git a/frontend/im/colors/images/vaseshim.png b/frontend/im/colors/images/vaseshim.png new file mode 100644 index 0000000..7dbd352 Binary files /dev/null and b/frontend/im/colors/images/vaseshim.png differ 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 @@ + + + + + + +
+
+
+
+
CLICK TO CHOOSE THE COLOR
+
+
+ OPTIONS +
CLICK TO SWITCH TO RGB VALUES
+ +
+
CLICK TO TOGGLE PALATE INFO(NONE)
+ +
+
BACKGROUNDS...
+
+
Dithered
+
Black
+
White
+
Gray
+
+ + + +
+
+
+ +
+
+
YOU WILL CHOOSE:
+ + +
PICK
+
+ to choose transparent: + TRANSPARENT + +
+ Add to Favorites + Open Favorties +
+ + +
+
+
+ + + +
+ + + + + + + + + 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('

note: the .jpg image format does not support transparency'); + }); + 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(' '); + } + } + }, + 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(' '); + } + } + $('#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('No favourite colors.'); + } + 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(c35?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>3K: 3I .3h W 3O 3U 3T 3S 3R\')}),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<2f 30="1n" 2g="2d" 2N="2o(\\\'\'+b[c]+"\',\'1T"+c+"\');\\"><1U>"+d+\'&2F;\')}},29:4(a){H(j b=$("#1b").h(),c=b.1r(M),d=0;d0?a+M+q.h():q.h();j d=q.h(),b=a.1r(M),e=b.K-1;$("#27").2m(),X.22(\'<2f 30="1n" 2g="2d" 2N="2o(\\\'\'+q.h()+"\',\'1T"+e+"\');\\"><1U>"+d+\'&2F;\')}$("#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(\'3X 3Y N.\'),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="",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="",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="
",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="",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="
a",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>"!==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="
t
",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="
",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=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},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>");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>")+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)?""!==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("', + error : '

The requested content cannot be loaded.
Please try again later.

', + closeBtn : '', + next : '', + prev : '' + }, + + // 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 = $('
').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 = $('
').html(content).find(current.selector); + + } else if (isQuery(content)) { + if (!content.data(placeholder)) { + content.data(placeholder, $('
').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 = ''; + embed = ''; + + $.each(current.swf, function(name, val) { + content += ''; + embed += ' ' + name + '="' + val + '"'; + }); + + content += ''; + 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 = $('
').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 = $('
' + text + '
'); + + 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(''); + + //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 = $('
').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 = $('
').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'); + + $("").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 $("

", {"class": "remember_state"}) + .html('Do you want to restore your previously entered info?'); + })(), + 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(c35?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 $("

",{"1w":"T"}).1x(\'1y C 1z U 1B 1C 1D 1E 1F?\')})(),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 @@ + +

We are totally running low on disk space!!!!!!!!!1

+

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. +

+
love jules
+ diff --git a/frontend/im/df.png b/frontend/im/df.png new file mode 100755 index 0000000..c0fda7f Binary files /dev/null and b/frontend/im/df.png differ 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 @@ + + + +PHOTOBLASTER + + + + + + + + + + +
+

+ + +
+ + + + px +
+ + + px +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + + ° +
+ + + + + + +--> + + + + + +
+ + + + + +

+ + +

+ See what people are making → Image Gallery
+ + Some really cool photoblasts → Photoblaster Tumblr +

+
+

+ + Go back to the editor → Photoblaster Editor
+

+ + +
+ →
+
+ + +
+ +
+

+ Define a width and height, and choose colors for the gradient. You can also choose the gradient style. + + Specify colors using hex codes, or consult the list of Color Names. +

+
+ +
+
+
+ + + + + + diff --git a/frontend/im/imcupbg.jpg b/frontend/im/imcupbg.jpg new file mode 100755 index 0000000..b3cf3f5 Binary files /dev/null and b/frontend/im/imcupbg.jpg differ 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 @@ + + + +PHOTOBLASTER + + + + + + + + + + + + + + + +
+ SORRY, this photoblaster page is down for maintenance. Will be back in an hour or so... +
+
+
+ +
+ + + +
+ + + +
+ + + + + + + + + + + + + +
+ + +   +pick color +
+ + + % +
+ + + + + px +
+ + + px +
+ + + +
+ + + + +   +pick color +
+
+ + +   +pick color +
+ + + + + + + +
+ + + + + + + + +
+ + + +
+ + + ° +
+ + + + + + + + + + + + + +
+ + + + + + + + + +

+ + Mess around with heightmaps and textures Landscape + + + Overlay patterns onto your gifs pattern + + Write your own effects → Shaderblaster & Dither + + Oh now it's on....payback time → FOTO FUCKER + + + Transform images in 3D → Grid Generator + + Gradients make everything better → Gradient Generator +

+ +

+ See what people are making → Image Gallery
+ + The best ones go here → Photoblaster Tumblr + + View a random selection → Random Gallery
+ + + Things you've made → Your Gallery
+
+

+
+ +
+ →
+
+ + +
+
+ + + + + + + + + + + + + + diff --git a/frontend/im/new.gif b/frontend/im/new.gif new file mode 100755 index 0000000..37c39d2 Binary files /dev/null and b/frontend/im/new.gif differ 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 @@ + + + +IM PORTAL + + +
+ + +
+ +
+ + + +
+ + + +
+ + + % +
+ +
+ + + px +
+ + + px +
+ +
+ + + +
+ + + +
+ +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + ° +
+ +
+ + + + + + +
+ +
+ →
+
+ + +
+ +
+

+ This page provides a basic interface to the command-line image utility IMAGEMAGICK. + Paste a link into the first box, then use the other settings to colorize, distort, and add transparency. +

+
+

+ See what people have made → Image Gallery +

+
+ + + + + + 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 @@ + + diff --git a/frontend/im/thing1.gif b/frontend/im/thing1.gif new file mode 100644 index 0000000..5acdf58 Binary files /dev/null and b/frontend/im/thing1.gif differ diff --git a/frontend/im/thing2.png b/frontend/im/thing2.png new file mode 100644 index 0000000..6104d00 Binary files /dev/null and b/frontend/im/thing2.png differ diff --git a/frontend/imbreak/_broken_by_janie_30e_semitrans1.png b/frontend/imbreak/_broken_by_janie_30e_semitrans1.png new file mode 100755 index 0000000..9884388 Binary files /dev/null and b/frontend/imbreak/_broken_by_janie_30e_semitrans1.png differ 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 new file mode 100755 index 0000000..9573cd4 Binary files /dev/null and b/frontend/imbreak/imbreakfavico.ico differ diff --git a/frontend/imbreak/img/ALPHA20IVY20201_1323328300.gif b/frontend/imbreak/img/ALPHA20IVY20201_1323328300.gif new file mode 100644 index 0000000..710ef2e Binary files /dev/null and b/frontend/imbreak/img/ALPHA20IVY20201_1323328300.gif differ diff --git a/frontend/imbreak/img/_broken_by_janie_147_greeks.gif b/frontend/imbreak/img/_broken_by_janie_147_greeks.gif new file mode 100755 index 0000000..e5c4ddb Binary files /dev/null and b/frontend/imbreak/img/_broken_by_janie_147_greeks.gif differ diff --git a/frontend/imbreak/img/_broken_by_janie_16b_justhost_155x75.gif b/frontend/imbreak/img/_broken_by_janie_16b_justhost_155x75.gif new file mode 100755 index 0000000..5b7144d Binary files /dev/null and b/frontend/imbreak/img/_broken_by_janie_16b_justhost_155x75.gif differ 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 new file mode 100755 index 0000000..d6dd790 Binary files /dev/null and b/frontend/imbreak/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg differ diff --git a/frontend/imbreak/img/columns.jpg b/frontend/imbreak/img/columns.jpg new file mode 100755 index 0000000..d6dd790 Binary files /dev/null and b/frontend/imbreak/img/columns.jpg differ diff --git a/frontend/imbreak/img/firstlogo.gif b/frontend/imbreak/img/firstlogo.gif new file mode 100755 index 0000000..5762688 Binary files /dev/null and b/frontend/imbreak/img/firstlogo.gif differ diff --git a/frontend/imbreak/img/generating.gif b/frontend/imbreak/img/generating.gif new file mode 100755 index 0000000..441abe7 Binary files /dev/null and b/frontend/imbreak/img/generating.gif differ diff --git a/frontend/imbreak/img/greeks.gif b/frontend/imbreak/img/greeks.gif new file mode 100755 index 0000000..f676210 Binary files /dev/null and b/frontend/imbreak/img/greeks.gif differ diff --git a/frontend/imbreak/img/imgrid_1328137237_ivy_pepper.gif b/frontend/imbreak/img/imgrid_1328137237_ivy_pepper.gif new file mode 100644 index 0000000..8cd7316 Binary files /dev/null and b/frontend/imbreak/img/imgrid_1328137237_ivy_pepper.gif differ diff --git a/frontend/imbreak/img/ivy.gif b/frontend/imbreak/img/ivy.gif new file mode 100755 index 0000000..b51faca Binary files /dev/null and b/frontend/imbreak/img/ivy.gif differ diff --git a/frontend/imbreak/img/ivy2.gif b/frontend/imbreak/img/ivy2.gif new file mode 100755 index 0000000..710ef2e Binary files /dev/null and b/frontend/imbreak/img/ivy2.gif differ diff --git a/frontend/imbreak/img/newmain.gif b/frontend/imbreak/img/newmain.gif new file mode 100755 index 0000000..8eb7e73 Binary files /dev/null and b/frontend/imbreak/img/newmain.gif differ diff --git a/frontend/imbreak/img/og.jpg b/frontend/imbreak/img/og.jpg new file mode 100755 index 0000000..d6dd790 Binary files /dev/null and b/frontend/imbreak/img/og.jpg differ diff --git a/frontend/imbreak/img/on9TF_1322970909_1322970984_1323325278.gif b/frontend/imbreak/img/on9TF_1322970909_1322970984_1323325278.gif new file mode 100755 index 0000000..8e19e59 Binary files /dev/null and b/frontend/imbreak/img/on9TF_1322970909_1322970984_1323325278.gif differ diff --git a/frontend/imbreak/img/title1.gif b/frontend/imbreak/img/title1.gif new file mode 100755 index 0000000..206723a Binary files /dev/null and b/frontend/imbreak/img/title1.gif differ 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 @@ + + + + + + + + + + + + + + + + + + + + + +
+
+ WHY NOT PASTE A URL HERE? (an image or gif animation)!! + + +
+ e.g. http://imageman.com/coolguy.jpg... or hotimagedudes/cooltimes.gif + ←←CLICK HERE!! KEEP CLICKING TO KEEP FUCKING IT UP!!! +
+ +BREAK TYPE:  + + +
+
BREAK MODES: + subtle + gradual + extreme +
+
+BREAK ANGLE:  +

+
+
+
+ + + +
+
+
+
+
+
+ + + + +
+
+ + + + + + + + + + + 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 = '' + $("#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("ERROR: " + s + "").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
"+"
"+"
" +); + $("#output-info").html('-ACTUAL SIZE-
'+Main.filesize(data.size)+'
'+data.width+'
'+data.height+'

'+'see more at →photoblaster gallery'+'
') + 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;b0)return true;h[g]=1;i=h[g]>0;h[g]=0;return i},isOverAxis:function(h,g,i){return h>g&&h=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('
').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.leftb[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.topb[3])?i:!(i-this.offset.click.topb[2])?g:!(g-this.offset.click.left=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=l&&i<=o||b>=l&&b<=o||io)&&(h>= +f&&h<=j||g>=f&&g<=j||hj);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
').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');/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(ge.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');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("
")},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.rightb||j.bottomh&&j.rightg&&j.bottom *",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=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+li&&c+od[this.floating?"width":"height"]?l:i0?"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=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=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)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.topthis.containment[3])?i:!(i-this.offset.click.topthis.containment[2])?g:!(g-this.offset.click.left=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").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").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').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("").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("
    ").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").data("item.autocomplete",e).append(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()").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("");j.secondary&&b.append("");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('
    '))}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('
    '))}},_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(''+j+"");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("").addClass(this._triggerClass).attr({src:o,alt:j,title:j}):a('').addClass(this._triggerClass).html(o==""?j:a("").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;mn){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('');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-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-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 +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&&ww;){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)?''+w+"":o?"":''+w+"";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)?''+x+"":o?"":''+x+"";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?'":"";l=l?'
    '+(j?n:"")+(this._isInRange(b,x)?'":"")+(j?"":n)+"
    ":"";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;E1)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+='
    '+(/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)+'
    ';var G=p?'":"";for(B=0;B<7;B++){var A=(B+n)%7;G+="=5?' class="ui-datepicker-week-end"':"")+'>'+y[A]+""}F+=G+"";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";var S=!p?"":'";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&&Au;S+='";A.setDate(A.getDate()+1);A=this._daylightSavingAdjust(A)}F+=S+""}m++;if(m>11){m=0;v++}F+="
    '+this._get(b,"weekHeader")+"
    '+this._get(b,"calculateWeek")(A)+""+(K&&!I?" ":O?''+ +A.getDate()+"":''+A.getDate()+"")+"
    "+(q?""+(k[0]>0&&L==k[1]-1?'
    ':""):"");P+=F}D+=P}D+=l+(a.browser.msie&&parseInt(a.browser.version,10)<7&&!b.inline?'': +"");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='
    ',u="";if(n||!p)u+=''+k[f]+"";else{k=l&&l.getFullYear()==j;var v=o&&o.getFullYear()==j;u+='"}s||(r+=u+(n||!(p&&q)?" ":""));if(!b.yearshtml){b.yearshtml="";if(n||!q)r+=''+j+"";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+='";r+=b.yearshtml;b.yearshtml=null}}r+=this._get(b,"yearSuffix");if(s)r+=(n||!(p&&q)?" ":"")+u;r+="
    ";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&&fb?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("
    ")).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("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(j), +o=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("")).addClass("ui-icon ui-icon-closethick").text(i.closeText).appendTo(o);a("").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("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),j=a("
    ").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('').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()").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 g0?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("
    ").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("
    ").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"); +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&&e1){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=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:"
    ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_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=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(++na",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>",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="
    "+""+"
    ",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="
    t
    ",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="
    ",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-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=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=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=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;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?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;h0){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+~,(\[\\]+)+|[>+~])(\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;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=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 bc[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=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.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.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="

    ";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="
    ";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;h0)for(h=g;h=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-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:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_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
    ","
    "]),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>");try{for(var c=0,d=this.length;c1&&l0?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>");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]===""&&!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=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>/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("
    ").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=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-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 @@ + + + + + + + +
    +BREAK TYPE  + + +
    +
    BREAK MODES: + gradual + subtle + extreme +
    +
    +BREAK ANGLE  +

    +
    +IMAGE URL 
    +
    +USERNAME  + + +
    + + + + +
    +
    +
    +COPYRIGHT 2011 PEPPER DREAMTEAMER + + + + + + + + + + diff --git a/frontend/imbreak/semitrans1.png b/frontend/imbreak/semitrans1.png new file mode 100755 index 0000000..d6c9525 Binary files /dev/null and b/frontend/imbreak/semitrans1.png differ diff --git a/frontend/imbreak/thegif/1.gif b/frontend/imbreak/thegif/1.gif new file mode 100755 index 0000000..f4bd658 Binary files /dev/null and b/frontend/imbreak/thegif/1.gif differ diff --git a/frontend/imbreak/thegif/2.gif b/frontend/imbreak/thegif/2.gif new file mode 100755 index 0000000..bba2284 Binary files /dev/null and b/frontend/imbreak/thegif/2.gif differ diff --git a/frontend/imbreak/thegif/2.jpg b/frontend/imbreak/thegif/2.jpg new file mode 100755 index 0000000..e390e59 Binary files /dev/null and b/frontend/imbreak/thegif/2.jpg differ diff --git a/frontend/imbreak/thegif/3.gif b/frontend/imbreak/thegif/3.gif new file mode 100755 index 0000000..7ca1e90 Binary files /dev/null and b/frontend/imbreak/thegif/3.gif differ diff --git a/frontend/imbreak/thegif/4.gif b/frontend/imbreak/thegif/4.gif new file mode 100755 index 0000000..d5e6f2f Binary files /dev/null and b/frontend/imbreak/thegif/4.gif differ diff --git a/frontend/imbreak/thegif/5.gif b/frontend/imbreak/thegif/5.gif new file mode 100755 index 0000000..08c8d42 Binary files /dev/null and b/frontend/imbreak/thegif/5.gif differ diff --git a/frontend/imbreak/thegif/6.gif b/frontend/imbreak/thegif/6.gif new file mode 100755 index 0000000..0768847 Binary files /dev/null and b/frontend/imbreak/thegif/6.gif differ diff --git a/frontend/imbreak/thegif/6.jpg b/frontend/imbreak/thegif/6.jpg new file mode 100755 index 0000000..423cf71 Binary files /dev/null and b/frontend/imbreak/thegif/6.jpg differ diff --git a/frontend/imbreak/thegif/6.sun b/frontend/imbreak/thegif/6.sun new file mode 100755 index 0000000..7846a53 Binary files /dev/null and b/frontend/imbreak/thegif/6.sun differ diff --git a/frontend/imbreak/thegif/three.gif b/frontend/imbreak/thegif/three.gif new file mode 100755 index 0000000..99021d5 Binary files /dev/null and b/frontend/imbreak/thegif/three.gif differ 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 new file mode 100755 index 0000000..058594d Binary files /dev/null and b/frontend/imdither/18.bmp differ 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]', '', '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/`). 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 = '

    Critical error while processing request: %s

    ' \ + % html_escape(environ.get('PATH_INFO', '/')) + if DEBUG: + err += '

    Error:

    \n
    \n%s\n
    \n' \ + '

    Traceback:

    \n
    \n%s\n
    \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.'). 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//' + c(x, y=5) -> '/c/' and '/c//' + d(x=5, y=6) -> '/d' and '/d/' and '/d//' + """ + 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 '', '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 + + + + Error: {{e.status}} + + + +

    Error: {{e.status}}

    +

    Sorry, the requested URL {{repr(request.url)}} + caused an error:

    +
    {{e.body}}
    + %%if DEBUG and e.exception: +

    Exception:

    +
    {{repr(e.exception)}}
    + %%end + %%if DEBUG and e.traceback: +

    Traceback:

    +
    {{e.traceback}}
    + %%end + + +%%except ImportError: + ImportError: 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 @@ + + + + + + + +
    + +
    + +
    +Step 1: Choose your dither +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      
    + + +
      +
    + +
    +Image to overlay: +Or Upload +
    + + +
    +
    + + + + + + + + diff --git a/frontend/imdither/img/logo.png b/frontend/imdither/img/logo.png new file mode 100755 index 0000000..64432e3 Binary files /dev/null and b/frontend/imdither/img/logo.png differ 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("");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=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;ic)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(;j0)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(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?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
    a",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="
    ",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ",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-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=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=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-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;i0?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;g0){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+~,(\[\\]+)+|[>+~])(\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;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=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 bc[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=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",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.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="

    ";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="
    ";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;g0)for(h=g;h0: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-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-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=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_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
    ","
    "]),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>");try{for(var c=0,d=this.length;c1&&l0?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>");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]===""&&!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=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>/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("
    ").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=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
    ";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/') +def server_static(filename): + return static_file(filename, root='./dithers/') + +@route('/img/') +def server_static(filename): + return static_file(filename, root='./img/') + +@route('/') +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 = "" + \ + location + \ + "" + 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 @@ + + + + + + + + +
    +

    List of Color Names

    +
    + +

    a list of named colors for use with PHOTOBLASTER:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameColorRGBHex
    snowsnowrgb(255, 250, 250)#FFFAFA
    snow1snow1rgb(255, 250, 250)#FFFAFA
    snow2snow2rgb(238, 233, 233)#EEE9E9
    RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
    RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
    snow3snow3rgb(205, 201, 201)#CDC9C9
    LightCoralLightCoralrgb(240, 128, 128)#F08080
    IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
    RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
    IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
    RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
    brown1brown1rgb(255, 64, 64)#FF4040
    firebrick1firebrick1rgb(255, 48, 48)#FF3030
    brown2brown2rgb(238, 59, 59)#EE3B3B
    IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
    IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
    firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
    snow4snow4rgb(139, 137, 137)#8B8989
    brown3brown3rgb(205, 51, 51)#CD3333
    redredrgb(255, 0, 0)#FF0000
    red1red1rgb(255, 0, 0)#FF0000
    RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
    firebrick3firebrick3rgb(205, 38, 38)#CD2626
    red2red2rgb(238, 0, 0)#EE0000
    firebrickfirebrickrgb(178, 34, 34)#B22222
    brownbrownrgb(165, 42, 42)#A52A2A
    red3red3rgb(205, 0, 0)#CD0000
    IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
    brown4brown4rgb(139, 35, 35)#8B2323
    firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
    DarkRedDarkRedrgb(139, 0, 0)#8B0000
    red4red4rgb(139, 0, 0)#8B0000
    maroonmaroonrgb(128, 0, 0)#800000
    LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
    LightPink3LightPink3rgb(205, 140, 149)#CD8C95
    LightPink4LightPink4rgb(139, 95, 101)#8B5F65
    LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
    LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
    pinkpinkrgb(255, 192, 203)#FFC0CB
    crimsoncrimsonrgb(220, 20, 60)#DC143C
    pink1pink1rgb(255, 181, 197)#FFB5C5
    pink2pink2rgb(238, 169, 184)#EEA9B8
    pink3pink3rgb(205, 145, 158)#CD919E
    pink4pink4rgb(139, 99, 108)#8B636C
    PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
    PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
    PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
    PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
    PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
    LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
    LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
    LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
    LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
    LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
    maroonmaroonrgb(176, 48, 96)#B03060
    HotPink3HotPink3rgb(205, 96, 144)#CD6090
    VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
    VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
    VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
    VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
    HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
    HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
    HotPink4HotPink4rgb(139, 58, 98)#8B3A62
    HotPinkHotPinkrgb(255, 105, 180)#FF69B4
    DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
    DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
    DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
    DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
    DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
    maroon1maroon1rgb(255, 52, 179)#FF34B3
    maroon2maroon2rgb(238, 48, 167)#EE30A7
    maroon3maroon3rgb(205, 41, 144)#CD2990
    maroon4maroon4rgb(139, 28, 98)#8B1C62
    MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
    VioletRedVioletRedrgb(208, 32, 144)#D02090
    orchid2orchid2rgb(238, 122, 233)#EE7AE9
    orchidorchidrgb(218, 112, 214)#DA70D6
    orchid1orchid1rgb(255, 131, 250)#FF83FA
    orchid3orchid3rgb(205, 105, 201)#CD69C9
    orchid4orchid4rgb(139, 71, 137)#8B4789
    thistle1thistle1rgb(255, 225, 255)#FFE1FF
    thistle2thistle2rgb(238, 210, 238)#EED2EE
    plum1plum1rgb(255, 187, 255)#FFBBFF
    plum2plum2rgb(238, 174, 238)#EEAEEE
    thistlethistlergb(216, 191, 216)#D8BFD8
    thistle3thistle3rgb(205, 181, 205)#CDB5CD
    plumplumrgb(221, 160, 221)#DDA0DD
    violetvioletrgb(238, 130, 238)#EE82EE
    plum3plum3rgb(205, 150, 205)#CD96CD
    thistle4thistle4rgb(139, 123, 139)#8B7B8B
    fuchsiafuchsiargb(255, 0, 255)#FF00FF
    magentamagentargb(255, 0, 255)#FF00FF
    magenta1magenta1rgb(255, 0, 255)#FF00FF
    plum4plum4rgb(139, 102, 139)#8B668B
    magenta2magenta2rgb(238, 0, 238)#EE00EE
    magenta3magenta3rgb(205, 0, 205)#CD00CD
    DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
    magenta4magenta4rgb(139, 0, 139)#8B008B
    purplepurplergb(128, 0, 128)#800080
    MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
    MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
    MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
    MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
    MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
    DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
    DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
    DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
    DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
    DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
    DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
    purplepurplergb(160, 32, 240)#A020F0
    indigoindigorgb( 75, 0, 130)#4B0082
    BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
    purple2purple2rgb(145, 44, 238)#912CEE
    purple3purple3rgb(125, 38, 205)#7D26CD
    purple4purple4rgb( 85, 26, 139)#551A8B
    purple1purple1rgb(155, 48, 255)#9B30FF
    MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
    MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
    MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
    MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
    MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
    DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
    LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
    MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
    SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
    SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
    SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
    SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
    SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
    GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
    lavenderlavenderrgb(230, 230, 250)#E6E6FA
    bluebluergb( 0, 0, 255)#0000FF
    blue1blue1rgb( 0, 0, 255)#0000FF
    blue2blue2rgb( 0, 0, 238)#0000EE
    blue3blue3rgb( 0, 0, 205)#0000CD
    MediumBlueMediumBluergb( 0, 0, 205)#0000CD
    blue4blue4rgb( 0, 0, 139)#00008B
    DarkBlueDarkBluergb( 0, 0, 139)#00008B
    MidnightBlueMidnightBluergb( 25, 25, 112)#191970
    navynavyrgb( 0, 0, 128)#000080
    NavyBlueNavyBluergb( 0, 0, 128)#000080
    RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
    RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
    RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
    RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
    RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
    CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
    LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
    LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
    LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
    LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
    LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
    SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
    SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
    SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
    SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
    LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
    LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
    SlateGraySlateGrayrgb(112, 128, 144)#708090
    SlateGreySlateGreyrgb(112, 128, 144)#708090
    DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
    DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
    DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
    DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
    DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
    AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
    SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
    SteelBlueSteelBluergb( 70, 130, 180)#4682B4
    SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
    SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
    SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
    SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
    SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
    SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
    SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
    LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
    LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
    LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
    LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
    LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
    SkyBlueSkyBluergb(135, 206, 235)#87CEEB
    LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
    DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
    DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
    DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
    DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
    DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
    LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
    LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
    LightBlueLightBluergb(173, 216, 230)#ADD8E6
    LightBlue4LightBlue4rgb(104, 131, 139)#68838B
    PowderBluePowderBluergb(176, 224, 230)#B0E0E6
    CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
    CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
    CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
    CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
    turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
    turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
    turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
    turquoise4turquoise4rgb( 0, 134, 139)#00868B
    cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
    CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
    DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
    azureazurergb(240, 255, 255)#F0FFFF
    azure1azure1rgb(240, 255, 255)#F0FFFF
    LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
    LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
    azure2azure2rgb(224, 238, 238)#E0EEEE
    LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
    PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
    PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
    PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
    DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
    azure3azure3rgb(193, 205, 205)#C1CDCD
    LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
    DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
    PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
    DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
    azure4azure4rgb(131, 139, 139)#838B8B
    LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
    aquaaquargb( 0, 255, 255)#00FFFF
    cyancyanrgb( 0, 255, 255)#00FFFF
    cyan1cyan1rgb( 0, 255, 255)#00FFFF
    PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
    cyan2cyan2rgb( 0, 238, 238)#00EEEE
    DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
    cyan3cyan3rgb( 0, 205, 205)#00CDCD
    cyan4cyan4rgb( 0, 139, 139)#008B8B
    DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
    tealtealrgb( 0, 128, 128)#008080
    DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
    DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
    MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
    LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
    turquoiseturquoisergb( 64, 224, 208)#40E0D0
    aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
    aquamarineaquamarinergb(127, 255, 212)#7FFFD4
    aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
    aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
    aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
    MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
    MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
    MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
    SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
    SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
    SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
    SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
    SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
    MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
    SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
    SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
    SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
    SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
    SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
    MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
    honeydewhoneydewrgb(240, 255, 240)#F0FFF0
    honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
    honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
    DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
    DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
    PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
    PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
    honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
    LightGreenLightGreenrgb(144, 238, 144)#90EE90
    PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
    DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
    DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
    PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
    honeydew4honeydew4rgb(131, 139, 131)#838B83
    green1green1rgb( 0, 255, 0)#00FF00
    limelimergb( 0, 255, 0)#00FF00
    LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
    DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
    green2green2rgb( 0, 238, 0)#00EE00
    PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
    green3green3rgb( 0, 205, 0)#00CD00
    ForestGreenForestGreenrgb( 34, 139, 34)#228B22
    green4green4rgb( 0, 139, 0)#008B00
    greengreenrgb( 0, 128, 0)#008000
    DarkGreenDarkGreenrgb( 0, 100, 0)#006400
    LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
    chartreusechartreusergb(127, 255, 0)#7FFF00
    chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
    chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
    chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
    chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
    GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
    DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
    DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
    DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
    DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
    DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
    OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
    OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
    OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
    OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
    YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
    OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
    ivoryivoryrgb(255, 255, 240)#FFFFF0
    ivory1ivory1rgb(255, 255, 240)#FFFFF0
    LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
    LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
    beigebeigergb(245, 245, 220)#F5F5DC
    ivory2ivory2rgb(238, 238, 224)#EEEEE0
    LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
    LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
    ivory3ivory3rgb(205, 205, 193)#CDCDC1
    LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
    ivory4ivory4rgb(139, 139, 131)#8B8B83
    LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
    yellowyellowrgb(255, 255, 0)#FFFF00
    yellow1yellow1rgb(255, 255, 0)#FFFF00
    yellow2yellow2rgb(238, 238, 0)#EEEE00
    yellow3yellow3rgb(205, 205, 0)#CDCD00
    yellow4yellow4rgb(139, 139, 0)#8B8B00
    oliveolivergb(128, 128, 0)#808000
    DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
    khaki2khaki2rgb(238, 230, 133)#EEE685
    LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
    khaki1khaki1rgb(255, 246, 143)#FFF68F
    khaki3khaki3rgb(205, 198, 115)#CDC673
    khaki4khaki4rgb(139, 134, 78)#8B864E
    PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
    LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
    LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
    khakikhakirgb(240, 230, 140)#F0E68C
    LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
    LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
    MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
    cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
    goldgoldrgb(255, 215, 0)#FFD700
    gold1gold1rgb(255, 215, 0)#FFD700
    gold2gold2rgb(238, 201, 0)#EEC900
    gold3gold3rgb(205, 173, 0)#CDAD00
    gold4gold4rgb(139, 117, 0)#8B7500
    LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
    LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
    LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
    LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
    LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
    cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
    cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
    cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
    cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
    goldenrodgoldenrodrgb(218, 165, 32)#DAA520
    goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
    goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
    goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
    goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
    DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
    DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
    DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
    DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
    DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
    FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
    wheat2wheat2rgb(238, 216, 174)#EED8AE
    OldLaceOldLacergb(253, 245, 230)#FDF5E6
    wheatwheatrgb(245, 222, 179)#F5DEB3
    wheat1wheat1rgb(255, 231, 186)#FFE7BA
    wheat3wheat3rgb(205, 186, 150)#CDBA96
    orangeorangergb(255, 165, 0)#FFA500
    orange1orange1rgb(255, 165, 0)#FFA500
    orange2orange2rgb(238, 154, 0)#EE9A00
    orange3orange3rgb(205, 133, 0)#CD8500
    orange4orange4rgb(139, 90, 0)#8B5A00
    wheat4wheat4rgb(139, 126, 102)#8B7E66
    moccasinmoccasinrgb(255, 228, 181)#FFE4B5
    PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
    NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
    BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
    NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
    NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
    NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
    NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
    AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
    AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
    tantanrgb(210, 180, 140)#D2B48C
    bisque4bisque4rgb(139, 125, 107)#8B7D6B
    burlywoodburlywoodrgb(222, 184, 135)#DEB887
    AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
    burlywood1burlywood1rgb(255, 211, 155)#FFD39B
    burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
    burlywood2burlywood2rgb(238, 197, 145)#EEC591
    AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
    burlywood4burlywood4rgb(139, 115, 85)#8B7355
    AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
    DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
    bisque2bisque2rgb(238, 213, 183)#EED5B7
    bisquebisquergb(255, 228, 196)#FFE4C4
    bisque1bisque1rgb(255, 228, 196)#FFE4C4
    bisque3bisque3rgb(205, 183, 158)#CDB79E
    DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
    linenlinenrgb(250, 240, 230)#FAF0E6
    DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
    DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
    DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
    peruperurgb(205, 133, 63)#CD853F
    tan1tan1rgb(255, 165, 79)#FFA54F
    tan2tan2rgb(238, 154, 73)#EE9A49
    tan3tan3rgb(205, 133, 63)#CD853F
    tan4tan4rgb(139, 90, 43)#8B5A2B
    PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
    PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
    PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
    PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
    PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
    SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
    seashell4seashell4rgb(139, 134, 130)#8B8682
    seashell2seashell2rgb(238, 229, 222)#EEE5DE
    seashell3seashell3rgb(205, 197, 191)#CDC5BF
    chocolatechocolatergb(210, 105, 30)#D2691E
    chocolate1chocolate1rgb(255, 127, 36)#FF7F24
    chocolate2chocolate2rgb(238, 118, 33)#EE7621
    chocolate3chocolate3rgb(205, 102, 29)#CD661D
    chocolate4chocolate4rgb(139, 69, 19)#8B4513
    SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
    seashellseashellrgb(255, 245, 238)#FFF5EE
    seashell1seashell1rgb(255, 245, 238)#FFF5EE
    sienna4sienna4rgb(139, 71, 38)#8B4726
    siennasiennargb(160, 82, 45)#A0522D
    sienna1sienna1rgb(255, 130, 71)#FF8247
    sienna2sienna2rgb(238, 121, 66)#EE7942
    sienna3sienna3rgb(205, 104, 57)#CD6839
    LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
    LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
    LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
    LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
    LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
    coralcoralrgb(255, 127, 80)#FF7F50
    OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
    OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
    OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
    OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
    OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
    DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
    salmon1salmon1rgb(255, 140, 105)#FF8C69
    salmon2salmon2rgb(238, 130, 98)#EE8262
    salmon3salmon3rgb(205, 112, 84)#CD7054
    salmon4salmon4rgb(139, 76, 57)#8B4C39
    coral1coral1rgb(255, 114, 86)#FF7256
    coral2coral2rgb(238, 106, 80)#EE6A50
    coral3coral3rgb(205, 91, 69)#CD5B45
    coral4coral4rgb(139, 62, 47)#8B3E2F
    tomato4tomato4rgb(139, 54, 38)#8B3626
    tomatotomatorgb(255, 99, 71)#FF6347
    tomato1tomato1rgb(255, 99, 71)#FF6347
    tomato2tomato2rgb(238, 92, 66)#EE5C42
    tomato3tomato3rgb(205, 79, 57)#CD4F39
    MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
    MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
    MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
    MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
    salmonsalmonrgb(250, 128, 114)#FA8072
    MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
    whitewhitergb(255, 255, 255)#FFFFFF
    gray100gray100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    gray99gray99rgb(252, 252, 252)#FCFCFC
    grey99grey99rgb(252, 252, 252)#FCFCFC
    gray98gray98rgb(250, 250, 250)#FAFAFA
    grey98grey98rgb(250, 250, 250)#FAFAFA
    gray97gray97rgb(247, 247, 247)#F7F7F7
    grey97grey97rgb(247, 247, 247)#F7F7F7
    gray96gray96rgb(245, 245, 245)#F5F5F5
    grey96grey96rgb(245, 245, 245)#F5F5F5
    WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
    gray95gray95rgb(242, 242, 242)#F2F2F2
    grey95grey95rgb(242, 242, 242)#F2F2F2
    gray94gray94rgb(240, 240, 240)#F0F0F0
    grey94grey94rgb(240, 240, 240)#F0F0F0
    gray93gray93rgb(237, 237, 237)#EDEDED
    grey93grey93rgb(237, 237, 237)#EDEDED
    gray92gray92rgb(235, 235, 235)#EBEBEB
    grey92grey92rgb(235, 235, 235)#EBEBEB
    gray91gray91rgb(232, 232, 232)#E8E8E8
    grey91grey91rgb(232, 232, 232)#E8E8E8
    gray90gray90rgb(229, 229, 229)#E5E5E5
    grey90grey90rgb(229, 229, 229)#E5E5E5
    gray89gray89rgb(227, 227, 227)#E3E3E3
    grey89grey89rgb(227, 227, 227)#E3E3E3
    gray88gray88rgb(224, 224, 224)#E0E0E0
    grey88grey88rgb(224, 224, 224)#E0E0E0
    gray87gray87rgb(222, 222, 222)#DEDEDE
    grey87grey87rgb(222, 222, 222)#DEDEDE
    gainsborogainsbororgb(220, 220, 220)#DCDCDC
    gray86gray86rgb(219, 219, 219)#DBDBDB
    grey86grey86rgb(219, 219, 219)#DBDBDB
    gray85gray85rgb(217, 217, 217)#D9D9D9
    grey85grey85rgb(217, 217, 217)#D9D9D9
    gray84gray84rgb(214, 214, 214)#D6D6D6
    grey84grey84rgb(214, 214, 214)#D6D6D6
    gray83gray83rgb(212, 212, 212)#D4D4D4
    grey83grey83rgb(212, 212, 212)#D4D4D4
    LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
    LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
    gray82gray82rgb(209, 209, 209)#D1D1D1
    grey82grey82rgb(209, 209, 209)#D1D1D1
    gray81gray81rgb(207, 207, 207)#CFCFCF
    grey81grey81rgb(207, 207, 207)#CFCFCF
    gray80gray80rgb(204, 204, 204)#CCCCCC
    grey80grey80rgb(204, 204, 204)#CCCCCC
    gray79gray79rgb(201, 201, 201)#C9C9C9
    grey79grey79rgb(201, 201, 201)#C9C9C9
    gray78gray78rgb(199, 199, 199)#C7C7C7
    grey78grey78rgb(199, 199, 199)#C7C7C7
    gray77gray77rgb(196, 196, 196)#C4C4C4
    grey77grey77rgb(196, 196, 196)#C4C4C4
    gray76gray76rgb(194, 194, 194)#C2C2C2
    grey76grey76rgb(194, 194, 194)#C2C2C2
    silversilverrgb(192, 192, 192)#C0C0C0
    gray75gray75rgb(191, 191, 191)#BFBFBF
    grey75grey75rgb(191, 191, 191)#BFBFBF
    gray74gray74rgb(189, 189, 189)#BDBDBD
    grey74grey74rgb(189, 189, 189)#BDBDBD
    gray73gray73rgb(186, 186, 186)#BABABA
    grey73grey73rgb(186, 186, 186)#BABABA
    gray72gray72rgb(184, 184, 184)#B8B8B8
    grey72grey72rgb(184, 184, 184)#B8B8B8
    gray71gray71rgb(181, 181, 181)#B5B5B5
    grey71grey71rgb(181, 181, 181)#B5B5B5
    gray70gray70rgb(179, 179, 179)#B3B3B3
    grey70grey70rgb(179, 179, 179)#B3B3B3
    gray69gray69rgb(176, 176, 176)#B0B0B0
    grey69grey69rgb(176, 176, 176)#B0B0B0
    gray68gray68rgb(173, 173, 173)#ADADAD
    grey68grey68rgb(173, 173, 173)#ADADAD
    gray67gray67rgb(171, 171, 171)#ABABAB
    grey67grey67rgb(171, 171, 171)#ABABAB
    DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
    DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
    gray66gray66rgb(168, 168, 168)#A8A8A8
    grey66grey66rgb(168, 168, 168)#A8A8A8
    gray65gray65rgb(166, 166, 166)#A6A6A6
    grey65grey65rgb(166, 166, 166)#A6A6A6
    gray64gray64rgb(163, 163, 163)#A3A3A3
    grey64grey64rgb(163, 163, 163)#A3A3A3
    gray63gray63rgb(161, 161, 161)#A1A1A1
    grey63grey63rgb(161, 161, 161)#A1A1A1
    gray62gray62rgb(158, 158, 158)#9E9E9E
    grey62grey62rgb(158, 158, 158)#9E9E9E
    gray61gray61rgb(156, 156, 156)#9C9C9C
    grey61grey61rgb(156, 156, 156)#9C9C9C
    gray60gray60rgb(153, 153, 153)#999999
    grey60grey60rgb(153, 153, 153)#999999
    gray59gray59rgb(150, 150, 150)#969696
    grey59grey59rgb(150, 150, 150)#969696
    gray58gray58rgb(148, 148, 148)#949494
    grey58grey58rgb(148, 148, 148)#949494
    gray57gray57rgb(145, 145, 145)#919191
    grey57grey57rgb(145, 145, 145)#919191
    gray56gray56rgb(143, 143, 143)#8F8F8F
    grey56grey56rgb(143, 143, 143)#8F8F8F
    gray55gray55rgb(140, 140, 140)#8C8C8C
    grey55grey55rgb(140, 140, 140)#8C8C8C
    gray54gray54rgb(138, 138, 138)#8A8A8A
    grey54grey54rgb(138, 138, 138)#8A8A8A
    gray53gray53rgb(135, 135, 135)#878787
    grey53grey53rgb(135, 135, 135)#878787
    gray52gray52rgb(133, 133, 133)#858585
    grey52grey52rgb(133, 133, 133)#858585
    gray51gray51rgb(130, 130, 130)#828282
    grey51grey51rgb(130, 130, 130)#828282
    fractalfractalrgb(128, 128, 128)#808080
    gray50gray50rgb(127, 127, 127)#7F7F7F
    grey50grey50rgb(127, 127, 127)#7F7F7F
    graygrayrgb(126, 126, 126)#7E7E7E
    gray49gray49rgb(125, 125, 125)#7D7D7D
    grey49grey49rgb(125, 125, 125)#7D7D7D
    gray48gray48rgb(122, 122, 122)#7A7A7A
    grey48grey48rgb(122, 122, 122)#7A7A7A
    gray47gray47rgb(120, 120, 120)#787878
    grey47grey47rgb(120, 120, 120)#787878
    gray46gray46rgb(117, 117, 117)#757575
    grey46grey46rgb(117, 117, 117)#757575
    gray45gray45rgb(115, 115, 115)#737373
    grey45grey45rgb(115, 115, 115)#737373
    gray44gray44rgb(112, 112, 112)#707070
    grey44grey44rgb(112, 112, 112)#707070
    gray43gray43rgb(110, 110, 110)#6E6E6E
    grey43grey43rgb(110, 110, 110)#6E6E6E
    gray42gray42rgb(107, 107, 107)#6B6B6B
    grey42grey42rgb(107, 107, 107)#6B6B6B
    DimGrayDimGrayrgb(105, 105, 105)#696969
    DimGreyDimGreyrgb(105, 105, 105)#696969
    gray41gray41rgb(105, 105, 105)#696969
    grey41grey41rgb(105, 105, 105)#696969
    gray40gray40rgb(102, 102, 102)#666666
    grey40grey40rgb(102, 102, 102)#666666
    gray39gray39rgb( 99, 99, 99)#636363
    grey39grey39rgb( 99, 99, 99)#636363
    gray38gray38rgb( 97, 97, 97)#616161
    grey38grey38rgb( 97, 97, 97)#616161
    gray37gray37rgb( 94, 94, 94)#5E5E5E
    grey37grey37rgb( 94, 94, 94)#5E5E5E
    gray36gray36rgb( 92, 92, 92)#5C5C5C
    grey36grey36rgb( 92, 92, 92)#5C5C5C
    gray35gray35rgb( 89, 89, 89)#595959
    grey35grey35rgb( 89, 89, 89)#595959
    gray34gray34rgb( 87, 87, 87)#575757
    grey34grey34rgb( 87, 87, 87)#575757
    gray33gray33rgb( 84, 84, 84)#545454
    grey33grey33rgb( 84, 84, 84)#545454
    gray32gray32rgb( 82, 82, 82)#525252
    grey32grey32rgb( 82, 82, 82)#525252
    gray31gray31rgb( 79, 79, 79)#4F4F4F
    grey31grey31rgb( 79, 79, 79)#4F4F4F
    gray30gray30rgb( 77, 77, 77)#4D4D4D
    grey30grey30rgb( 77, 77, 77)#4D4D4D
    gray29gray29rgb( 74, 74, 74)#4A4A4A
    grey29grey29rgb( 74, 74, 74)#4A4A4A
    gray28gray28rgb( 71, 71, 71)#474747
    grey28grey28rgb( 71, 71, 71)#474747
    gray27gray27rgb( 69, 69, 69)#454545
    grey27grey27rgb( 69, 69, 69)#454545
    gray26gray26rgb( 66, 66, 66)#424242
    grey26grey26rgb( 66, 66, 66)#424242
    gray25gray25rgb( 64, 64, 64)#404040
    grey25grey25rgb( 64, 64, 64)#404040
    gray24gray24rgb( 61, 61, 61)#3D3D3D
    grey24grey24rgb( 61, 61, 61)#3D3D3D
    gray23gray23rgb( 59, 59, 59)#3B3B3B
    grey23grey23rgb( 59, 59, 59)#3B3B3B
    gray22gray22rgb( 56, 56, 56)#383838
    grey22grey22rgb( 56, 56, 56)#383838
    gray21gray21rgb( 54, 54, 54)#363636
    grey21grey21rgb( 54, 54, 54)#363636
    gray20gray20rgb( 51, 51, 51)#333333
    grey20grey20rgb( 51, 51, 51)#333333
    gray19gray19rgb( 48, 48, 48)#303030
    grey19grey19rgb( 48, 48, 48)#303030
    gray18gray18rgb( 46, 46, 46)#2E2E2E
    grey18grey18rgb( 46, 46, 46)#2E2E2E
    gray17gray17rgb( 43, 43, 43)#2B2B2B
    grey17grey17rgb( 43, 43, 43)#2B2B2B
    gray16gray16rgb( 41, 41, 41)#292929
    grey16grey16rgb( 41, 41, 41)#292929
    gray15gray15rgb( 38, 38, 38)#262626
    grey15grey15rgb( 38, 38, 38)#262626
    gray14gray14rgb( 36, 36, 36)#242424
    grey14grey14rgb( 36, 36, 36)#242424
    gray13gray13rgb( 33, 33, 33)#212121
    grey13grey13rgb( 33, 33, 33)#212121
    gray12gray12rgb( 31, 31, 31)#1F1F1F
    grey12grey12rgb( 31, 31, 31)#1F1F1F
    gray11gray11rgb( 28, 28, 28)#1C1C1C
    grey11grey11rgb( 28, 28, 28)#1C1C1C
    gray10gray10rgb( 26, 26, 26)#1A1A1A
    grey10grey10rgb( 26, 26, 26)#1A1A1A
    gray9gray9rgb( 23, 23, 23)#171717
    grey9grey9rgb( 23, 23, 23)#171717
    gray8gray8rgb( 20, 20, 20)#141414
    grey8grey8rgb( 20, 20, 20)#141414
    gray7gray7rgb( 18, 18, 18)#121212
    grey7grey7rgb( 18, 18, 18)#121212
    gray6gray6rgb( 15, 15, 15)#0F0F0F
    grey6grey6rgb( 15, 15, 15)#0F0F0F
    gray5gray5rgb( 13, 13, 13)#0D0D0D
    grey5grey5rgb( 13, 13, 13)#0D0D0D
    gray4gray4rgb( 10, 10, 10)#0A0A0A
    grey4grey4rgb( 10, 10, 10)#0A0A0A
    gray3gray3rgb( 8, 8, 8)#080808
    grey3grey3rgb( 8, 8, 8)#080808
    gray2gray2rgb( 5, 5, 5)#050505
    grey2grey2rgb( 5, 5, 5)#050505
    gray1gray1rgb( 3, 3, 3)#030303
    grey1grey1rgb( 3, 3, 3)#030303
    blackblackrgb( 0, 0, 0)#000000
    gray0gray0rgb( 0, 0, 0)#000000
    grey0grey0rgb( 0, 0, 0)#000000
    opaqueopaquergb( 0, 0, 0)#000000
    nonenonergba( 0, 0, 0, 0.0)#00000000
    transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
    + +
    + +
    + + 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 new file mode 100755 index 0000000..b5db23a Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-bg_diagonal-maze_75_ffffff_10x10.png differ 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 new file mode 100755 index 0000000..907d9da Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-bg_diagonals-medium_75_cccccc_40x40.png differ 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 new file mode 100755 index 0000000..42ccba2 Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-bg_glass_65_ffffff_1x400.png differ 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 new file mode 100755 index 0000000..5a46b47 Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_dadada_1x400.png differ 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 new file mode 100755 index 0000000..86c2baa Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_e6e6e6_1x400.png differ 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 new file mode 100755 index 0000000..1a21c4f Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-bg_gloss-wave_0_aaaaaa_500x100.png differ 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 new file mode 100755 index 0000000..481bf22 Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-bg_inset-hard_55_fbf9ee_1x100.png differ 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 new file mode 100755 index 0000000..0e05810 Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png differ 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 new file mode 100755 index 0000000..b273ff1 Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-icons_222222_256x240.png differ 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 new file mode 100755 index 0000000..09d1cdc Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-icons_2e83ff_256x240.png differ 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 new file mode 100755 index 0000000..59bd45b Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-icons_454545_256x240.png differ 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 new file mode 100755 index 0000000..6d02426 Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-icons_888888_256x240.png differ 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 new file mode 100755 index 0000000..2ab019b Binary files /dev/null and b/frontend/imgradient/css/custom-theme/images/ui-icons_cd0a0a_256x240.png differ 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 new file mode 100755 index 0000000..ebaaa1c Binary files /dev/null and b/frontend/imgradient/firstrun/blue-turquoise_1315104576.gif differ diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104586.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104586.gif new file mode 100755 index 0000000..1bd11e4 Binary files /dev/null and b/frontend/imgradient/firstrun/blue-turquoise_1315104586.gif differ diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104592.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104592.gif new file mode 100755 index 0000000..1bd11e4 Binary files /dev/null and b/frontend/imgradient/firstrun/blue-turquoise_1315104592.gif differ diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104597.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104597.gif new file mode 100755 index 0000000..1bd11e4 Binary files /dev/null and b/frontend/imgradient/firstrun/blue-turquoise_1315104597.gif differ diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104604.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104604.gif new file mode 100755 index 0000000..e27009e Binary files /dev/null and b/frontend/imgradient/firstrun/blue-turquoise_1315104604.gif differ diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104609.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104609.gif new file mode 100755 index 0000000..1bd11e4 Binary files /dev/null and b/frontend/imgradient/firstrun/blue-turquoise_1315104609.gif differ diff --git a/frontend/imgradient/firstrun/green-black_1315122389.gif b/frontend/imgradient/firstrun/green-black_1315122389.gif new file mode 100755 index 0000000..6b82eb8 Binary files /dev/null and b/frontend/imgradient/firstrun/green-black_1315122389.gif differ diff --git a/frontend/imgradient/firstrun/green-black_1315122400.gif b/frontend/imgradient/firstrun/green-black_1315122400.gif new file mode 100755 index 0000000..62bbeef Binary files /dev/null and b/frontend/imgradient/firstrun/green-black_1315122400.gif differ diff --git a/frontend/imgradient/firstrun/green-black_1315122410.gif b/frontend/imgradient/firstrun/green-black_1315122410.gif new file mode 100755 index 0000000..632996c Binary files /dev/null and b/frontend/imgradient/firstrun/green-black_1315122410.gif differ diff --git a/frontend/imgradient/firstrun/green-black_1315122420.gif b/frontend/imgradient/firstrun/green-black_1315122420.gif new file mode 100755 index 0000000..5358fbe Binary files /dev/null and b/frontend/imgradient/firstrun/green-black_1315122420.gif differ diff --git a/frontend/imgradient/firstrun/green-black_1315122433.gif b/frontend/imgradient/firstrun/green-black_1315122433.gif new file mode 100755 index 0000000..148f3de Binary files /dev/null and b/frontend/imgradient/firstrun/green-black_1315122433.gif differ diff --git a/frontend/imgradient/firstrun/green-black_1315122439.gif b/frontend/imgradient/firstrun/green-black_1315122439.gif new file mode 100755 index 0000000..124ddea Binary files /dev/null and b/frontend/imgradient/firstrun/green-black_1315122439.gif differ diff --git a/frontend/imgradient/firstrun/green-black_1315122450.gif b/frontend/imgradient/firstrun/green-black_1315122450.gif new file mode 100755 index 0000000..fd32367 Binary files /dev/null and b/frontend/imgradient/firstrun/green-black_1315122450.gif differ diff --git a/frontend/imgradient/firstrun/green-darkorchid_1315122486.gif b/frontend/imgradient/firstrun/green-darkorchid_1315122486.gif new file mode 100755 index 0000000..4537a2d Binary files /dev/null and b/frontend/imgradient/firstrun/green-darkorchid_1315122486.gif differ diff --git a/frontend/imgradient/firstrun/pink-brown_1315117256_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117256_pepper.gif new file mode 100755 index 0000000..6af4c65 Binary files /dev/null and b/frontend/imgradient/firstrun/pink-brown_1315117256_pepper.gif differ diff --git a/frontend/imgradient/firstrun/pink-brown_1315117275_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117275_pepper.gif new file mode 100755 index 0000000..aaebf53 Binary files /dev/null and b/frontend/imgradient/firstrun/pink-brown_1315117275_pepper.gif differ diff --git a/frontend/imgradient/firstrun/pink-brown_1315117282_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117282_pepper.gif new file mode 100755 index 0000000..bdab6d8 Binary files /dev/null and b/frontend/imgradient/firstrun/pink-brown_1315117282_pepper.gif differ diff --git a/frontend/imgradient/firstrun/pink-brown_1315117337_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117337_pepper.gif new file mode 100755 index 0000000..b919dd4 Binary files /dev/null and b/frontend/imgradient/firstrun/pink-brown_1315117337_pepper.gif differ diff --git a/frontend/imgradient/firstrun/pink-brown_1315117344_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117344_pepper.gif new file mode 100755 index 0000000..44aa4bb Binary files /dev/null and b/frontend/imgradient/firstrun/pink-brown_1315117344_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104452_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104452_pepper.gif new file mode 100755 index 0000000..0c5e456 Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104452_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104469_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104469_pepper.gif new file mode 100755 index 0000000..0c5e456 Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104469_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104474_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104474_pepper.gif new file mode 100755 index 0000000..60c971c Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104474_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104486_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104486_pepper.gif new file mode 100755 index 0000000..56a4573 Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104486_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104496_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104496_pepper.gif new file mode 100755 index 0000000..d7077e0 Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104496_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104503_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104503_pepper.gif new file mode 100755 index 0000000..d7077e0 Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104503_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104513_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104513_pepper.gif new file mode 100755 index 0000000..7a0b613 Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104513_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104557_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104557_pepper.gif new file mode 100755 index 0000000..ecbe32a Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104557_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104564_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104564_pepper.gif new file mode 100755 index 0000000..bf2c16a Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104564_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104570_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104570_pepper.gif new file mode 100755 index 0000000..ecbe32a Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104570_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104579_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104579_pepper.gif new file mode 100755 index 0000000..ecbe32a Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104579_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315104583_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104583_pepper.gif new file mode 100755 index 0000000..ecbe32a Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315104583_pepper.gif differ diff --git a/frontend/imgradient/firstrun/red-black_1315105326_pepper.gif b/frontend/imgradient/firstrun/red-black_1315105326_pepper.gif new file mode 100755 index 0000000..6644b29 Binary files /dev/null and b/frontend/imgradient/firstrun/red-black_1315105326_pepper.gif differ diff --git a/frontend/imgradient/firstrun/snow2-orange_1315118700.gif b/frontend/imgradient/firstrun/snow2-orange_1315118700.gif new file mode 100755 index 0000000..6f6d7ad Binary files /dev/null and b/frontend/imgradient/firstrun/snow2-orange_1315118700.gif differ diff --git a/frontend/imgradient/firstrun/snow2-rosybrown1_1315117026_pepper.gif b/frontend/imgradient/firstrun/snow2-rosybrown1_1315117026_pepper.gif new file mode 100755 index 0000000..b38750f Binary files /dev/null and b/frontend/imgradient/firstrun/snow2-rosybrown1_1315117026_pepper.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-black_1315109992.gif b/frontend/imgradient/firstrun/turquoise-black_1315109992.gif new file mode 100755 index 0000000..9cf70fd Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-black_1315109992.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-black_1315109999.gif b/frontend/imgradient/firstrun/turquoise-black_1315109999.gif new file mode 100755 index 0000000..483e674 Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-black_1315109999.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-black_1315110014.gif b/frontend/imgradient/firstrun/turquoise-black_1315110014.gif new file mode 100755 index 0000000..9cf70fd Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-black_1315110014.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-black_1315110018.gif b/frontend/imgradient/firstrun/turquoise-black_1315110018.gif new file mode 100755 index 0000000..6f38016 Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-black_1315110018.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-black_1315116328_pepper.gif b/frontend/imgradient/firstrun/turquoise-black_1315116328_pepper.gif new file mode 100755 index 0000000..9cf70fd Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-black_1315116328_pepper.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-indianred_1315106124_pepper.gif b/frontend/imgradient/firstrun/turquoise-indianred_1315106124_pepper.gif new file mode 100755 index 0000000..81b90d7 Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-indianred_1315106124_pepper.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-indianred_1315106162_pepper.gif b/frontend/imgradient/firstrun/turquoise-indianred_1315106162_pepper.gif new file mode 100755 index 0000000..71e6c54 Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-indianred_1315106162_pepper.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-indianred_1315106185_pepper.gif b/frontend/imgradient/firstrun/turquoise-indianred_1315106185_pepper.gif new file mode 100755 index 0000000..301981e Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-indianred_1315106185_pepper.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-indianred_1315106200_pepper.gif b/frontend/imgradient/firstrun/turquoise-indianred_1315106200_pepper.gif new file mode 100755 index 0000000..8944689 Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-indianred_1315106200_pepper.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-turquoise1_1315165837_pepper.gif b/frontend/imgradient/firstrun/turquoise-turquoise1_1315165837_pepper.gif new file mode 100755 index 0000000..99091ca Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-turquoise1_1315165837_pepper.gif differ diff --git a/frontend/imgradient/firstrun/turquoise-turquoise1_1315165849_pepper.gif b/frontend/imgradient/firstrun/turquoise-turquoise1_1315165849_pepper.gif new file mode 100755 index 0000000..76d760e Binary files /dev/null and b/frontend/imgradient/firstrun/turquoise-turquoise1_1315165849_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315090214.gif b/frontend/imgradient/firstrun/white-black_1315090214.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315090214.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315090397.gif b/frontend/imgradient/firstrun/white-black_1315090397.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315090397.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315104253_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104253_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315104253_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315104262_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104262_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315104262_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315104264_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104264_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315104264_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315104276_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104276_pepper.gif new file mode 100755 index 0000000..77b98c8 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315104276_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315104281_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104281_pepper.gif new file mode 100755 index 0000000..1a840f7 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315104281_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315104287_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104287_pepper.gif new file mode 100755 index 0000000..77b98c8 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315104287_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315104447_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104447_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315104447_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315106725_pepper.gif b/frontend/imgradient/firstrun/white-black_1315106725_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315106725_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113027.gif b/frontend/imgradient/firstrun/white-black_1315113027.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113027.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113031.gif b/frontend/imgradient/firstrun/white-black_1315113031.gif new file mode 100755 index 0000000..8174625 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113031.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113039.gif b/frontend/imgradient/firstrun/white-black_1315113039.gif new file mode 100755 index 0000000..05df7ec Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113039.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113043.gif b/frontend/imgradient/firstrun/white-black_1315113043.gif new file mode 100755 index 0000000..f3fc060 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113043.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113054.gif b/frontend/imgradient/firstrun/white-black_1315113054.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113054.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113059.gif b/frontend/imgradient/firstrun/white-black_1315113059.gif new file mode 100755 index 0000000..b4efc24 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113059.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113066.gif b/frontend/imgradient/firstrun/white-black_1315113066.gif new file mode 100755 index 0000000..05df7ec Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113066.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113070.gif b/frontend/imgradient/firstrun/white-black_1315113070.gif new file mode 100755 index 0000000..f3fc060 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113070.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113080.gif b/frontend/imgradient/firstrun/white-black_1315113080.gif new file mode 100755 index 0000000..d3d895d Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113080.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113215.gif b/frontend/imgradient/firstrun/white-black_1315113215.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113215.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113231_pepper.gif b/frontend/imgradient/firstrun/white-black_1315113231_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113231_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113240_pepper.gif b/frontend/imgradient/firstrun/white-black_1315113240_pepper.gif new file mode 100755 index 0000000..05df7ec Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113240_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113554_pepper.gif b/frontend/imgradient/firstrun/white-black_1315113554_pepper.gif new file mode 100755 index 0000000..05df7ec Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113554_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315113558_pepper.gif b/frontend/imgradient/firstrun/white-black_1315113558_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315113558_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315114146_pepper.gif b/frontend/imgradient/firstrun/white-black_1315114146_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315114146_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315114150_pepper.gif b/frontend/imgradient/firstrun/white-black_1315114150_pepper.gif new file mode 100755 index 0000000..a460627 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315114150_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315114156_pepper.gif b/frontend/imgradient/firstrun/white-black_1315114156_pepper.gif new file mode 100755 index 0000000..05df7ec Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315114156_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315114160_pepper.gif b/frontend/imgradient/firstrun/white-black_1315114160_pepper.gif new file mode 100755 index 0000000..f3fc060 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315114160_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315115826_pepper.gif b/frontend/imgradient/firstrun/white-black_1315115826_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315115826_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315115828_pepper.gif b/frontend/imgradient/firstrun/white-black_1315115828_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315115828_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315115830_pepper.gif b/frontend/imgradient/firstrun/white-black_1315115830_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315115830_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315115831_pepper.gif b/frontend/imgradient/firstrun/white-black_1315115831_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315115831_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315116319_pepper.gif b/frontend/imgradient/firstrun/white-black_1315116319_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315116319_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315117463_pepper.gif b/frontend/imgradient/firstrun/white-black_1315117463_pepper.gif new file mode 100755 index 0000000..a4cb01c Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315117463_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315118264_pepper.gif b/frontend/imgradient/firstrun/white-black_1315118264_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315118264_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315118293_pepper.gif b/frontend/imgradient/firstrun/white-black_1315118293_pepper.gif new file mode 100755 index 0000000..2870694 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315118293_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315118571_pepper.gif b/frontend/imgradient/firstrun/white-black_1315118571_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315118571_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315119305_pepper.gif b/frontend/imgradient/firstrun/white-black_1315119305_pepper.gif new file mode 100755 index 0000000..4604f76 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315119305_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315119637_pepper.gif b/frontend/imgradient/firstrun/white-black_1315119637_pepper.gif new file mode 100755 index 0000000..f3fc060 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315119637_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315120513_pepper.gif b/frontend/imgradient/firstrun/white-black_1315120513_pepper.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315120513_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315121913_pepper.gif b/frontend/imgradient/firstrun/white-black_1315121913_pepper.gif new file mode 100755 index 0000000..05df7ec Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315121913_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315121922_pepper.gif b/frontend/imgradient/firstrun/white-black_1315121922_pepper.gif new file mode 100755 index 0000000..f3fc060 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315121922_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315121930_pepper.gif b/frontend/imgradient/firstrun/white-black_1315121930_pepper.gif new file mode 100755 index 0000000..9a0f7d9 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315121930_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315122356.gif b/frontend/imgradient/firstrun/white-black_1315122356.gif new file mode 100755 index 0000000..9d68cfd Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315122356.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315122405.gif b/frontend/imgradient/firstrun/white-black_1315122405.gif new file mode 100755 index 0000000..ca9c9fe Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315122405.gif differ diff --git a/frontend/imgradient/firstrun/white-black_1315159828_pepper.gif b/frontend/imgradient/firstrun/white-black_1315159828_pepper.gif new file mode 100755 index 0000000..ebae0c0 Binary files /dev/null and b/frontend/imgradient/firstrun/white-black_1315159828_pepper.gif differ diff --git a/frontend/imgradient/firstrun/white-turquoise_1315113096.gif b/frontend/imgradient/firstrun/white-turquoise_1315113096.gif new file mode 100755 index 0000000..3ae9b16 Binary files /dev/null and b/frontend/imgradient/firstrun/white-turquoise_1315113096.gif differ diff --git a/frontend/imgradient/firstrun/white-turquoise_1315113100.gif b/frontend/imgradient/firstrun/white-turquoise_1315113100.gif new file mode 100755 index 0000000..3ae9b16 Binary files /dev/null and b/frontend/imgradient/firstrun/white-turquoise_1315113100.gif differ diff --git a/frontend/imgradient/firstrun/white-turquoise_1315113101.gif b/frontend/imgradient/firstrun/white-turquoise_1315113101.gif new file mode 100755 index 0000000..3ae9b16 Binary files /dev/null and b/frontend/imgradient/firstrun/white-turquoise_1315113101.gif differ 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 @@ + + + + + + +GRADIENT PHOTOBLASTER + + + + + + + + + + + + + +
    +
    +
    +

    + GRADIENT GENERATOR FOR PHOTOBLASTER + + + + + + + + +

    + + + + + + + + + + + px +
    + + + + + px +
    + + + + + + + +  color list +
    + + + + +  color list +
    + + + + + + + if yes...0-4000-2000 + + + + + + + +
    + +
    + + + +
    + +
    + + + +
    + +
    + + + +
    + +
    + + + + + + + + + + + + + + + % + + + + + + +
    + + + +
    + + ° +
    + + + + ° +
    + + + + + + + + + + + + +
    + + + + + + + +
    + VIEW AND ARRANGE THE PHOTOBLASTS → Image Gallery
    + + OPEN THE PHOTOBLASTER EDITOR → PHOTOBLASTER + + TOP PHOTOBLASTS GO TO THE TUMBLR → Photoblaster Tumblr +

    + +
    + +
    + →
    +
    + + +
    + + + +
    +
    +
    + + + + + + + + + + + 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;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=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("
    ").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"); +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&&c1){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=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 @@ + + + + + + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + + + + +
    + +
    + + +
    +
    3D-GRID-PLANE GENERATOR +
    +hit enter or click GENERATE to get your 2D plane + + +
    + +
    +
    + + + + +
    DIMENSIONS
    +
    +
    + + + + + +
    HEIGHT PX
    WIDTHPX
     
    +
    + + + + + + + + + + +
    SWING 
    TILT 
    ROLL 
    ZOOM  (in/out)  
    + + + + +
     
    CROP WHITESPACE
     
    + +
    IMAGE FORMAT +
    +
    + + + + +
    GRID AND IMAGE
    +
    + +
    + + + +
    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
    + + + + + + + + + +
    GRID THICKNESS:PX  
    GRID COLOR:COLOR LIST
    + + + + + + + + + + + + + + + +
    GRID OPACITY:
    GRID SPACING:
    USE ONLY VERTICAL LINES
    USE ONLY HORIZONTAL LINES
    + + +
    GRID BACKGROUND COLOR COLOR LIST
    + + + +
    OR GRID BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + + +
    GRID-TRANSITION
    + + + + +
    DROP SHADOW
    +
    + + + + + + +
    BACKGROUND
    +
    +
    + +
    BACKGROUND COLORCOLOR LIST
    + + + +
    OR BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + +
    SKYCOLORfor the area above the horizon-lineCOLOR LIST
    + +
    + + + +
     
    USERNAME
    +
    + +
    + +
    + + +
    + + + +
    +
    + + + + +
    +
    + + + + +COPYRIGHT 2011 PEPPER DREAMTEAMER + + + + + + + + + + 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 @@ + + + + + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + + + diff --git a/frontend/imgrid/colors/blackshim.png b/frontend/imgrid/colors/blackshim.png new file mode 100755 index 0000000..a122193 Binary files /dev/null and b/frontend/imgrid/colors/blackshim.png differ 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 @@ + + + + + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + + + + diff --git a/frontend/imgrid/colors/colors/blackshim.png b/frontend/imgrid/colors/colors/blackshim.png new file mode 100755 index 0000000..a122193 Binary files /dev/null and b/frontend/imgrid/colors/colors/blackshim.png differ diff --git a/frontend/imgrid/colors/colors/grayshim.png b/frontend/imgrid/colors/colors/grayshim.png new file mode 100755 index 0000000..6f71223 Binary files /dev/null and b/frontend/imgrid/colors/colors/grayshim.png differ diff --git a/frontend/imgrid/colors/colors/hoverbutton.png b/frontend/imgrid/colors/colors/hoverbutton.png new file mode 100755 index 0000000..b14281e Binary files /dev/null and b/frontend/imgrid/colors/colors/hoverbutton.png differ 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 @@ + + + + +
    +
    +
    +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
    +
    + +
    +CLICK TO CHOOSE THE COLOR +
    + +
    + OPTIONS +
     
    +
    +
    CLICK TO TOGGLE PALATE INFO
    +
    +
    CLICK TO TOGGLE BACKGROUNDS
    +
    +
    +
    YOU WILL CHOOSE:
    +
    + to choose transparent as a color, click HERE +
    +
    + +
    +
    + + + + + + + + + + + + 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 new file mode 100755 index 0000000..670df08 Binary files /dev/null and b/frontend/imgrid/colors/colors/js/ditherbackground.gif differ 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 new file mode 100755 index 0000000..c1ef116 Binary files /dev/null and b/frontend/imgrid/colors/colors/js/hoverbackground.jpg differ 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('

    note: the .jpg image format does not support transparency') + }); + + 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"?"":"")+""),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;g0){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=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;ic)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(;j0)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(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?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
    a",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="
    ",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ",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-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=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=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-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;i0?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;g0){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+~,(\[\\]+)+|[>+~])(\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;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=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 bc[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=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",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.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="

    ";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="
    ";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;g0)for(h=g;h0: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-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-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:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_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
    ","
    "]),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>");try{for(var c=0,d=this.length;c1&&l0?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>");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]===""&&!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=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>/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("
    ").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=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
    ";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 @@ + + + + + + + + +
    +

    List of Color Names

    +
    + +

    a list of named colors for use with PHOTOBLASTER:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameColorRGBHex
    snowsnowrgb(255, 250, 250)#FFFAFA
    snow1snow1rgb(255, 250, 250)#FFFAFA
    snow2snow2rgb(238, 233, 233)#EEE9E9
    RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
    RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
    snow3snow3rgb(205, 201, 201)#CDC9C9
    LightCoralLightCoralrgb(240, 128, 128)#F08080
    IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
    RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
    IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
    RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
    brown1brown1rgb(255, 64, 64)#FF4040
    firebrick1firebrick1rgb(255, 48, 48)#FF3030
    brown2brown2rgb(238, 59, 59)#EE3B3B
    IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
    IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
    firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
    snow4snow4rgb(139, 137, 137)#8B8989
    brown3brown3rgb(205, 51, 51)#CD3333
    redredrgb(255, 0, 0)#FF0000
    red1red1rgb(255, 0, 0)#FF0000
    RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
    firebrick3firebrick3rgb(205, 38, 38)#CD2626
    red2red2rgb(238, 0, 0)#EE0000
    firebrickfirebrickrgb(178, 34, 34)#B22222
    brownbrownrgb(165, 42, 42)#A52A2A
    red3red3rgb(205, 0, 0)#CD0000
    IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
    brown4brown4rgb(139, 35, 35)#8B2323
    firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
    DarkRedDarkRedrgb(139, 0, 0)#8B0000
    red4red4rgb(139, 0, 0)#8B0000
    maroonmaroonrgb(128, 0, 0)#800000
    LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
    LightPink3LightPink3rgb(205, 140, 149)#CD8C95
    LightPink4LightPink4rgb(139, 95, 101)#8B5F65
    LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
    LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
    pinkpinkrgb(255, 192, 203)#FFC0CB
    crimsoncrimsonrgb(220, 20, 60)#DC143C
    pink1pink1rgb(255, 181, 197)#FFB5C5
    pink2pink2rgb(238, 169, 184)#EEA9B8
    pink3pink3rgb(205, 145, 158)#CD919E
    pink4pink4rgb(139, 99, 108)#8B636C
    PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
    PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
    PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
    PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
    PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
    LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
    LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
    LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
    LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
    LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
    maroonmaroonrgb(176, 48, 96)#B03060
    HotPink3HotPink3rgb(205, 96, 144)#CD6090
    VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
    VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
    VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
    VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
    HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
    HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
    HotPink4HotPink4rgb(139, 58, 98)#8B3A62
    HotPinkHotPinkrgb(255, 105, 180)#FF69B4
    DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
    DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
    DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
    DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
    DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
    maroon1maroon1rgb(255, 52, 179)#FF34B3
    maroon2maroon2rgb(238, 48, 167)#EE30A7
    maroon3maroon3rgb(205, 41, 144)#CD2990
    maroon4maroon4rgb(139, 28, 98)#8B1C62
    MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
    VioletRedVioletRedrgb(208, 32, 144)#D02090
    orchid2orchid2rgb(238, 122, 233)#EE7AE9
    orchidorchidrgb(218, 112, 214)#DA70D6
    orchid1orchid1rgb(255, 131, 250)#FF83FA
    orchid3orchid3rgb(205, 105, 201)#CD69C9
    orchid4orchid4rgb(139, 71, 137)#8B4789
    thistle1thistle1rgb(255, 225, 255)#FFE1FF
    thistle2thistle2rgb(238, 210, 238)#EED2EE
    plum1plum1rgb(255, 187, 255)#FFBBFF
    plum2plum2rgb(238, 174, 238)#EEAEEE
    thistlethistlergb(216, 191, 216)#D8BFD8
    thistle3thistle3rgb(205, 181, 205)#CDB5CD
    plumplumrgb(221, 160, 221)#DDA0DD
    violetvioletrgb(238, 130, 238)#EE82EE
    plum3plum3rgb(205, 150, 205)#CD96CD
    thistle4thistle4rgb(139, 123, 139)#8B7B8B
    fuchsiafuchsiargb(255, 0, 255)#FF00FF
    magentamagentargb(255, 0, 255)#FF00FF
    magenta1magenta1rgb(255, 0, 255)#FF00FF
    plum4plum4rgb(139, 102, 139)#8B668B
    magenta2magenta2rgb(238, 0, 238)#EE00EE
    magenta3magenta3rgb(205, 0, 205)#CD00CD
    DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
    magenta4magenta4rgb(139, 0, 139)#8B008B
    purplepurplergb(128, 0, 128)#800080
    MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
    MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
    MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
    MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
    MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
    DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
    DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
    DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
    DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
    DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
    DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
    purplepurplergb(160, 32, 240)#A020F0
    indigoindigorgb( 75, 0, 130)#4B0082
    BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
    purple2purple2rgb(145, 44, 238)#912CEE
    purple3purple3rgb(125, 38, 205)#7D26CD
    purple4purple4rgb( 85, 26, 139)#551A8B
    purple1purple1rgb(155, 48, 255)#9B30FF
    MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
    MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
    MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
    MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
    MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
    DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
    LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
    MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
    SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
    SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
    SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
    SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
    SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
    GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
    lavenderlavenderrgb(230, 230, 250)#E6E6FA
    bluebluergb( 0, 0, 255)#0000FF
    blue1blue1rgb( 0, 0, 255)#0000FF
    blue2blue2rgb( 0, 0, 238)#0000EE
    blue3blue3rgb( 0, 0, 205)#0000CD
    MediumBlueMediumBluergb( 0, 0, 205)#0000CD
    blue4blue4rgb( 0, 0, 139)#00008B
    DarkBlueDarkBluergb( 0, 0, 139)#00008B
    MidnightBlueMidnightBluergb( 25, 25, 112)#191970
    navynavyrgb( 0, 0, 128)#000080
    NavyBlueNavyBluergb( 0, 0, 128)#000080
    RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
    RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
    RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
    RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
    RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
    CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
    LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
    LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
    LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
    LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
    LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
    SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
    SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
    SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
    SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
    LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
    LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
    SlateGraySlateGrayrgb(112, 128, 144)#708090
    SlateGreySlateGreyrgb(112, 128, 144)#708090
    DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
    DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
    DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
    DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
    DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
    AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
    SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
    SteelBlueSteelBluergb( 70, 130, 180)#4682B4
    SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
    SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
    SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
    SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
    SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
    SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
    SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
    LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
    LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
    LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
    LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
    LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
    SkyBlueSkyBluergb(135, 206, 235)#87CEEB
    LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
    DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
    DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
    DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
    DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
    DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
    LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
    LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
    LightBlueLightBluergb(173, 216, 230)#ADD8E6
    LightBlue4LightBlue4rgb(104, 131, 139)#68838B
    PowderBluePowderBluergb(176, 224, 230)#B0E0E6
    CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
    CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
    CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
    CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
    turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
    turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
    turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
    turquoise4turquoise4rgb( 0, 134, 139)#00868B
    cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
    CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
    DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
    azureazurergb(240, 255, 255)#F0FFFF
    azure1azure1rgb(240, 255, 255)#F0FFFF
    LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
    LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
    azure2azure2rgb(224, 238, 238)#E0EEEE
    LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
    PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
    PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
    PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
    DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
    azure3azure3rgb(193, 205, 205)#C1CDCD
    LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
    DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
    PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
    DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
    azure4azure4rgb(131, 139, 139)#838B8B
    LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
    aquaaquargb( 0, 255, 255)#00FFFF
    cyancyanrgb( 0, 255, 255)#00FFFF
    cyan1cyan1rgb( 0, 255, 255)#00FFFF
    PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
    cyan2cyan2rgb( 0, 238, 238)#00EEEE
    DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
    cyan3cyan3rgb( 0, 205, 205)#00CDCD
    cyan4cyan4rgb( 0, 139, 139)#008B8B
    DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
    tealtealrgb( 0, 128, 128)#008080
    DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
    DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
    MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
    LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
    turquoiseturquoisergb( 64, 224, 208)#40E0D0
    aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
    aquamarineaquamarinergb(127, 255, 212)#7FFFD4
    aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
    aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
    aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
    MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
    MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
    MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
    SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
    SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
    SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
    SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
    SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
    MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
    SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
    SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
    SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
    SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
    SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
    MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
    honeydewhoneydewrgb(240, 255, 240)#F0FFF0
    honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
    honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
    DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
    DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
    PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
    PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
    honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
    LightGreenLightGreenrgb(144, 238, 144)#90EE90
    PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
    DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
    DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
    PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
    honeydew4honeydew4rgb(131, 139, 131)#838B83
    green1green1rgb( 0, 255, 0)#00FF00
    limelimergb( 0, 255, 0)#00FF00
    LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
    DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
    green2green2rgb( 0, 238, 0)#00EE00
    PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
    green3green3rgb( 0, 205, 0)#00CD00
    ForestGreenForestGreenrgb( 34, 139, 34)#228B22
    green4green4rgb( 0, 139, 0)#008B00
    greengreenrgb( 0, 128, 0)#008000
    DarkGreenDarkGreenrgb( 0, 100, 0)#006400
    LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
    chartreusechartreusergb(127, 255, 0)#7FFF00
    chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
    chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
    chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
    chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
    GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
    DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
    DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
    DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
    DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
    DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
    OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
    OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
    OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
    OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
    YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
    OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
    ivoryivoryrgb(255, 255, 240)#FFFFF0
    ivory1ivory1rgb(255, 255, 240)#FFFFF0
    LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
    LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
    beigebeigergb(245, 245, 220)#F5F5DC
    ivory2ivory2rgb(238, 238, 224)#EEEEE0
    LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
    LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
    ivory3ivory3rgb(205, 205, 193)#CDCDC1
    LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
    ivory4ivory4rgb(139, 139, 131)#8B8B83
    LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
    yellowyellowrgb(255, 255, 0)#FFFF00
    yellow1yellow1rgb(255, 255, 0)#FFFF00
    yellow2yellow2rgb(238, 238, 0)#EEEE00
    yellow3yellow3rgb(205, 205, 0)#CDCD00
    yellow4yellow4rgb(139, 139, 0)#8B8B00
    oliveolivergb(128, 128, 0)#808000
    DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
    khaki2khaki2rgb(238, 230, 133)#EEE685
    LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
    khaki1khaki1rgb(255, 246, 143)#FFF68F
    khaki3khaki3rgb(205, 198, 115)#CDC673
    khaki4khaki4rgb(139, 134, 78)#8B864E
    PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
    LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
    LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
    khakikhakirgb(240, 230, 140)#F0E68C
    LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
    LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
    MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
    cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
    goldgoldrgb(255, 215, 0)#FFD700
    gold1gold1rgb(255, 215, 0)#FFD700
    gold2gold2rgb(238, 201, 0)#EEC900
    gold3gold3rgb(205, 173, 0)#CDAD00
    gold4gold4rgb(139, 117, 0)#8B7500
    LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
    LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
    LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
    LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
    LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
    cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
    cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
    cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
    cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
    goldenrodgoldenrodrgb(218, 165, 32)#DAA520
    goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
    goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
    goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
    goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
    DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
    DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
    DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
    DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
    DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
    FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
    wheat2wheat2rgb(238, 216, 174)#EED8AE
    OldLaceOldLacergb(253, 245, 230)#FDF5E6
    wheatwheatrgb(245, 222, 179)#F5DEB3
    wheat1wheat1rgb(255, 231, 186)#FFE7BA
    wheat3wheat3rgb(205, 186, 150)#CDBA96
    orangeorangergb(255, 165, 0)#FFA500
    orange1orange1rgb(255, 165, 0)#FFA500
    orange2orange2rgb(238, 154, 0)#EE9A00
    orange3orange3rgb(205, 133, 0)#CD8500
    orange4orange4rgb(139, 90, 0)#8B5A00
    wheat4wheat4rgb(139, 126, 102)#8B7E66
    moccasinmoccasinrgb(255, 228, 181)#FFE4B5
    PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
    NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
    BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
    NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
    NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
    NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
    NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
    AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
    AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
    tantanrgb(210, 180, 140)#D2B48C
    bisque4bisque4rgb(139, 125, 107)#8B7D6B
    burlywoodburlywoodrgb(222, 184, 135)#DEB887
    AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
    burlywood1burlywood1rgb(255, 211, 155)#FFD39B
    burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
    burlywood2burlywood2rgb(238, 197, 145)#EEC591
    AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
    burlywood4burlywood4rgb(139, 115, 85)#8B7355
    AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
    DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
    bisque2bisque2rgb(238, 213, 183)#EED5B7
    bisquebisquergb(255, 228, 196)#FFE4C4
    bisque1bisque1rgb(255, 228, 196)#FFE4C4
    bisque3bisque3rgb(205, 183, 158)#CDB79E
    DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
    linenlinenrgb(250, 240, 230)#FAF0E6
    DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
    DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
    DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
    peruperurgb(205, 133, 63)#CD853F
    tan1tan1rgb(255, 165, 79)#FFA54F
    tan2tan2rgb(238, 154, 73)#EE9A49
    tan3tan3rgb(205, 133, 63)#CD853F
    tan4tan4rgb(139, 90, 43)#8B5A2B
    PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
    PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
    PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
    PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
    PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
    SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
    seashell4seashell4rgb(139, 134, 130)#8B8682
    seashell2seashell2rgb(238, 229, 222)#EEE5DE
    seashell3seashell3rgb(205, 197, 191)#CDC5BF
    chocolatechocolatergb(210, 105, 30)#D2691E
    chocolate1chocolate1rgb(255, 127, 36)#FF7F24
    chocolate2chocolate2rgb(238, 118, 33)#EE7621
    chocolate3chocolate3rgb(205, 102, 29)#CD661D
    chocolate4chocolate4rgb(139, 69, 19)#8B4513
    SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
    seashellseashellrgb(255, 245, 238)#FFF5EE
    seashell1seashell1rgb(255, 245, 238)#FFF5EE
    sienna4sienna4rgb(139, 71, 38)#8B4726
    siennasiennargb(160, 82, 45)#A0522D
    sienna1sienna1rgb(255, 130, 71)#FF8247
    sienna2sienna2rgb(238, 121, 66)#EE7942
    sienna3sienna3rgb(205, 104, 57)#CD6839
    LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
    LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
    LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
    LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
    LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
    coralcoralrgb(255, 127, 80)#FF7F50
    OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
    OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
    OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
    OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
    OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
    DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
    salmon1salmon1rgb(255, 140, 105)#FF8C69
    salmon2salmon2rgb(238, 130, 98)#EE8262
    salmon3salmon3rgb(205, 112, 84)#CD7054
    salmon4salmon4rgb(139, 76, 57)#8B4C39
    coral1coral1rgb(255, 114, 86)#FF7256
    coral2coral2rgb(238, 106, 80)#EE6A50
    coral3coral3rgb(205, 91, 69)#CD5B45
    coral4coral4rgb(139, 62, 47)#8B3E2F
    tomato4tomato4rgb(139, 54, 38)#8B3626
    tomatotomatorgb(255, 99, 71)#FF6347
    tomato1tomato1rgb(255, 99, 71)#FF6347
    tomato2tomato2rgb(238, 92, 66)#EE5C42
    tomato3tomato3rgb(205, 79, 57)#CD4F39
    MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
    MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
    MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
    MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
    salmonsalmonrgb(250, 128, 114)#FA8072
    MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
    whitewhitergb(255, 255, 255)#FFFFFF
    gray100gray100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    gray99gray99rgb(252, 252, 252)#FCFCFC
    grey99grey99rgb(252, 252, 252)#FCFCFC
    gray98gray98rgb(250, 250, 250)#FAFAFA
    grey98grey98rgb(250, 250, 250)#FAFAFA
    gray97gray97rgb(247, 247, 247)#F7F7F7
    grey97grey97rgb(247, 247, 247)#F7F7F7
    gray96gray96rgb(245, 245, 245)#F5F5F5
    grey96grey96rgb(245, 245, 245)#F5F5F5
    WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
    gray95gray95rgb(242, 242, 242)#F2F2F2
    grey95grey95rgb(242, 242, 242)#F2F2F2
    gray94gray94rgb(240, 240, 240)#F0F0F0
    grey94grey94rgb(240, 240, 240)#F0F0F0
    gray93gray93rgb(237, 237, 237)#EDEDED
    grey93grey93rgb(237, 237, 237)#EDEDED
    gray92gray92rgb(235, 235, 235)#EBEBEB
    grey92grey92rgb(235, 235, 235)#EBEBEB
    gray91gray91rgb(232, 232, 232)#E8E8E8
    grey91grey91rgb(232, 232, 232)#E8E8E8
    gray90gray90rgb(229, 229, 229)#E5E5E5
    grey90grey90rgb(229, 229, 229)#E5E5E5
    gray89gray89rgb(227, 227, 227)#E3E3E3
    grey89grey89rgb(227, 227, 227)#E3E3E3
    gray88gray88rgb(224, 224, 224)#E0E0E0
    grey88grey88rgb(224, 224, 224)#E0E0E0
    gray87gray87rgb(222, 222, 222)#DEDEDE
    grey87grey87rgb(222, 222, 222)#DEDEDE
    gainsborogainsbororgb(220, 220, 220)#DCDCDC
    gray86gray86rgb(219, 219, 219)#DBDBDB
    grey86grey86rgb(219, 219, 219)#DBDBDB
    gray85gray85rgb(217, 217, 217)#D9D9D9
    grey85grey85rgb(217, 217, 217)#D9D9D9
    gray84gray84rgb(214, 214, 214)#D6D6D6
    grey84grey84rgb(214, 214, 214)#D6D6D6
    gray83gray83rgb(212, 212, 212)#D4D4D4
    grey83grey83rgb(212, 212, 212)#D4D4D4
    LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
    LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
    gray82gray82rgb(209, 209, 209)#D1D1D1
    grey82grey82rgb(209, 209, 209)#D1D1D1
    gray81gray81rgb(207, 207, 207)#CFCFCF
    grey81grey81rgb(207, 207, 207)#CFCFCF
    gray80gray80rgb(204, 204, 204)#CCCCCC
    grey80grey80rgb(204, 204, 204)#CCCCCC
    gray79gray79rgb(201, 201, 201)#C9C9C9
    grey79grey79rgb(201, 201, 201)#C9C9C9
    gray78gray78rgb(199, 199, 199)#C7C7C7
    grey78grey78rgb(199, 199, 199)#C7C7C7
    gray77gray77rgb(196, 196, 196)#C4C4C4
    grey77grey77rgb(196, 196, 196)#C4C4C4
    gray76gray76rgb(194, 194, 194)#C2C2C2
    grey76grey76rgb(194, 194, 194)#C2C2C2
    silversilverrgb(192, 192, 192)#C0C0C0
    gray75gray75rgb(191, 191, 191)#BFBFBF
    grey75grey75rgb(191, 191, 191)#BFBFBF
    gray74gray74rgb(189, 189, 189)#BDBDBD
    grey74grey74rgb(189, 189, 189)#BDBDBD
    gray73gray73rgb(186, 186, 186)#BABABA
    grey73grey73rgb(186, 186, 186)#BABABA
    gray72gray72rgb(184, 184, 184)#B8B8B8
    grey72grey72rgb(184, 184, 184)#B8B8B8
    gray71gray71rgb(181, 181, 181)#B5B5B5
    grey71grey71rgb(181, 181, 181)#B5B5B5
    gray70gray70rgb(179, 179, 179)#B3B3B3
    grey70grey70rgb(179, 179, 179)#B3B3B3
    gray69gray69rgb(176, 176, 176)#B0B0B0
    grey69grey69rgb(176, 176, 176)#B0B0B0
    gray68gray68rgb(173, 173, 173)#ADADAD
    grey68grey68rgb(173, 173, 173)#ADADAD
    gray67gray67rgb(171, 171, 171)#ABABAB
    grey67grey67rgb(171, 171, 171)#ABABAB
    DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
    DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
    gray66gray66rgb(168, 168, 168)#A8A8A8
    grey66grey66rgb(168, 168, 168)#A8A8A8
    gray65gray65rgb(166, 166, 166)#A6A6A6
    grey65grey65rgb(166, 166, 166)#A6A6A6
    gray64gray64rgb(163, 163, 163)#A3A3A3
    grey64grey64rgb(163, 163, 163)#A3A3A3
    gray63gray63rgb(161, 161, 161)#A1A1A1
    grey63grey63rgb(161, 161, 161)#A1A1A1
    gray62gray62rgb(158, 158, 158)#9E9E9E
    grey62grey62rgb(158, 158, 158)#9E9E9E
    gray61gray61rgb(156, 156, 156)#9C9C9C
    grey61grey61rgb(156, 156, 156)#9C9C9C
    gray60gray60rgb(153, 153, 153)#999999
    grey60grey60rgb(153, 153, 153)#999999
    gray59gray59rgb(150, 150, 150)#969696
    grey59grey59rgb(150, 150, 150)#969696
    gray58gray58rgb(148, 148, 148)#949494
    grey58grey58rgb(148, 148, 148)#949494
    gray57gray57rgb(145, 145, 145)#919191
    grey57grey57rgb(145, 145, 145)#919191
    gray56gray56rgb(143, 143, 143)#8F8F8F
    grey56grey56rgb(143, 143, 143)#8F8F8F
    gray55gray55rgb(140, 140, 140)#8C8C8C
    grey55grey55rgb(140, 140, 140)#8C8C8C
    gray54gray54rgb(138, 138, 138)#8A8A8A
    grey54grey54rgb(138, 138, 138)#8A8A8A
    gray53gray53rgb(135, 135, 135)#878787
    grey53grey53rgb(135, 135, 135)#878787
    gray52gray52rgb(133, 133, 133)#858585
    grey52grey52rgb(133, 133, 133)#858585
    gray51gray51rgb(130, 130, 130)#828282
    grey51grey51rgb(130, 130, 130)#828282
    fractalfractalrgb(128, 128, 128)#808080
    gray50gray50rgb(127, 127, 127)#7F7F7F
    grey50grey50rgb(127, 127, 127)#7F7F7F
    graygrayrgb(126, 126, 126)#7E7E7E
    gray49gray49rgb(125, 125, 125)#7D7D7D
    grey49grey49rgb(125, 125, 125)#7D7D7D
    gray48gray48rgb(122, 122, 122)#7A7A7A
    grey48grey48rgb(122, 122, 122)#7A7A7A
    gray47gray47rgb(120, 120, 120)#787878
    grey47grey47rgb(120, 120, 120)#787878
    gray46gray46rgb(117, 117, 117)#757575
    grey46grey46rgb(117, 117, 117)#757575
    gray45gray45rgb(115, 115, 115)#737373
    grey45grey45rgb(115, 115, 115)#737373
    gray44gray44rgb(112, 112, 112)#707070
    grey44grey44rgb(112, 112, 112)#707070
    gray43gray43rgb(110, 110, 110)#6E6E6E
    grey43grey43rgb(110, 110, 110)#6E6E6E
    gray42gray42rgb(107, 107, 107)#6B6B6B
    grey42grey42rgb(107, 107, 107)#6B6B6B
    DimGrayDimGrayrgb(105, 105, 105)#696969
    DimGreyDimGreyrgb(105, 105, 105)#696969
    gray41gray41rgb(105, 105, 105)#696969
    grey41grey41rgb(105, 105, 105)#696969
    gray40gray40rgb(102, 102, 102)#666666
    grey40grey40rgb(102, 102, 102)#666666
    gray39gray39rgb( 99, 99, 99)#636363
    grey39grey39rgb( 99, 99, 99)#636363
    gray38gray38rgb( 97, 97, 97)#616161
    grey38grey38rgb( 97, 97, 97)#616161
    gray37gray37rgb( 94, 94, 94)#5E5E5E
    grey37grey37rgb( 94, 94, 94)#5E5E5E
    gray36gray36rgb( 92, 92, 92)#5C5C5C
    grey36grey36rgb( 92, 92, 92)#5C5C5C
    gray35gray35rgb( 89, 89, 89)#595959
    grey35grey35rgb( 89, 89, 89)#595959
    gray34gray34rgb( 87, 87, 87)#575757
    grey34grey34rgb( 87, 87, 87)#575757
    gray33gray33rgb( 84, 84, 84)#545454
    grey33grey33rgb( 84, 84, 84)#545454
    gray32gray32rgb( 82, 82, 82)#525252
    grey32grey32rgb( 82, 82, 82)#525252
    gray31gray31rgb( 79, 79, 79)#4F4F4F
    grey31grey31rgb( 79, 79, 79)#4F4F4F
    gray30gray30rgb( 77, 77, 77)#4D4D4D
    grey30grey30rgb( 77, 77, 77)#4D4D4D
    gray29gray29rgb( 74, 74, 74)#4A4A4A
    grey29grey29rgb( 74, 74, 74)#4A4A4A
    gray28gray28rgb( 71, 71, 71)#474747
    grey28grey28rgb( 71, 71, 71)#474747
    gray27gray27rgb( 69, 69, 69)#454545
    grey27grey27rgb( 69, 69, 69)#454545
    gray26gray26rgb( 66, 66, 66)#424242
    grey26grey26rgb( 66, 66, 66)#424242
    gray25gray25rgb( 64, 64, 64)#404040
    grey25grey25rgb( 64, 64, 64)#404040
    gray24gray24rgb( 61, 61, 61)#3D3D3D
    grey24grey24rgb( 61, 61, 61)#3D3D3D
    gray23gray23rgb( 59, 59, 59)#3B3B3B
    grey23grey23rgb( 59, 59, 59)#3B3B3B
    gray22gray22rgb( 56, 56, 56)#383838
    grey22grey22rgb( 56, 56, 56)#383838
    gray21gray21rgb( 54, 54, 54)#363636
    grey21grey21rgb( 54, 54, 54)#363636
    gray20gray20rgb( 51, 51, 51)#333333
    grey20grey20rgb( 51, 51, 51)#333333
    gray19gray19rgb( 48, 48, 48)#303030
    grey19grey19rgb( 48, 48, 48)#303030
    gray18gray18rgb( 46, 46, 46)#2E2E2E
    grey18grey18rgb( 46, 46, 46)#2E2E2E
    gray17gray17rgb( 43, 43, 43)#2B2B2B
    grey17grey17rgb( 43, 43, 43)#2B2B2B
    gray16gray16rgb( 41, 41, 41)#292929
    grey16grey16rgb( 41, 41, 41)#292929
    gray15gray15rgb( 38, 38, 38)#262626
    grey15grey15rgb( 38, 38, 38)#262626
    gray14gray14rgb( 36, 36, 36)#242424
    grey14grey14rgb( 36, 36, 36)#242424
    gray13gray13rgb( 33, 33, 33)#212121
    grey13grey13rgb( 33, 33, 33)#212121
    gray12gray12rgb( 31, 31, 31)#1F1F1F
    grey12grey12rgb( 31, 31, 31)#1F1F1F
    gray11gray11rgb( 28, 28, 28)#1C1C1C
    grey11grey11rgb( 28, 28, 28)#1C1C1C
    gray10gray10rgb( 26, 26, 26)#1A1A1A
    grey10grey10rgb( 26, 26, 26)#1A1A1A
    gray9gray9rgb( 23, 23, 23)#171717
    grey9grey9rgb( 23, 23, 23)#171717
    gray8gray8rgb( 20, 20, 20)#141414
    grey8grey8rgb( 20, 20, 20)#141414
    gray7gray7rgb( 18, 18, 18)#121212
    grey7grey7rgb( 18, 18, 18)#121212
    gray6gray6rgb( 15, 15, 15)#0F0F0F
    grey6grey6rgb( 15, 15, 15)#0F0F0F
    gray5gray5rgb( 13, 13, 13)#0D0D0D
    grey5grey5rgb( 13, 13, 13)#0D0D0D
    gray4gray4rgb( 10, 10, 10)#0A0A0A
    grey4grey4rgb( 10, 10, 10)#0A0A0A
    gray3gray3rgb( 8, 8, 8)#080808
    grey3grey3rgb( 8, 8, 8)#080808
    gray2gray2rgb( 5, 5, 5)#050505
    grey2grey2rgb( 5, 5, 5)#050505
    gray1gray1rgb( 3, 3, 3)#030303
    grey1grey1rgb( 3, 3, 3)#030303
    blackblackrgb( 0, 0, 0)#000000
    gray0gray0rgb( 0, 0, 0)#000000
    grey0grey0rgb( 0, 0, 0)#000000
    opaqueopaquergb( 0, 0, 0)#000000
    nonenonergba( 0, 0, 0, 0.0)#00000000
    transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
    + +
    + +
    + + 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+'
    ') +// } + /*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(' final_Landing_Spot ='+(final_Landing_Spot - new_scrolled_element_top_position)+'
    var vvvvvvelocity='+velocity+'
    clientY='+y_coordinate+'
    new scrolled top='+new_scrolled_element_top_position+'
    ') + // ----- 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+'
    rush='+rush+'
    ') +// } + /*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('
    final resting place='+final_resting_place+'
    var roll_to_zero='+roll_to_zero+'
    clientY='+y_coordinate+'
    easing='+easing+'
    ') + // ----- 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 new file mode 100755 index 0000000..6da99b4 Binary files /dev/null and b/frontend/imgrid/colors/colors/junk/brush.ani differ 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 @@ + + + + + + +
    BLACH BLAH BLAH
    + +

    hex

    +

    text

    +
    CLICK TO SHOW HEXES
    +
    +
    funny
    +
    happy
    +
    silly
    +
    smart
    +
    click it
    + +
    click me
    +
    +
    + +
    choose between hex or text...
    + + + + + 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 @@ + + + + + + + + +
    +

    List of Color Names

    +
    + +

    a list of named colors for use with PHOTOBLASTER:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameColorRGBHex
    snowsnowrgb(255, 250, 250)#FFFAFA
    snow1snow1rgb(255, 250, 250)#FFFAFA
    snow2snow2rgb(238, 233, 233)#EEE9E9
    RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
    RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
    snow3snow3rgb(205, 201, 201)#CDC9C9
    LightCoralLightCoralrgb(240, 128, 128)#F08080
    IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
    RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
    IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
    RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
    brown1brown1rgb(255, 64, 64)#FF4040
    firebrick1firebrick1rgb(255, 48, 48)#FF3030
    brown2brown2rgb(238, 59, 59)#EE3B3B
    IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
    IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
    firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
    snow4snow4rgb(139, 137, 137)#8B8989
    brown3brown3rgb(205, 51, 51)#CD3333
    redredrgb(255, 0, 0)#FF0000
    red1red1rgb(255, 0, 0)#FF0000
    RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
    firebrick3firebrick3rgb(205, 38, 38)#CD2626
    red2red2rgb(238, 0, 0)#EE0000
    firebrickfirebrickrgb(178, 34, 34)#B22222
    brownbrownrgb(165, 42, 42)#A52A2A
    red3red3rgb(205, 0, 0)#CD0000
    IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
    brown4brown4rgb(139, 35, 35)#8B2323
    firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
    DarkRedDarkRedrgb(139, 0, 0)#8B0000
    red4red4rgb(139, 0, 0)#8B0000
    maroonmaroonrgb(128, 0, 0)#800000
    LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
    LightPink3LightPink3rgb(205, 140, 149)#CD8C95
    LightPink4LightPink4rgb(139, 95, 101)#8B5F65
    LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
    LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
    pinkpinkrgb(255, 192, 203)#FFC0CB
    crimsoncrimsonrgb(220, 20, 60)#DC143C
    pink1pink1rgb(255, 181, 197)#FFB5C5
    pink2pink2rgb(238, 169, 184)#EEA9B8
    pink3pink3rgb(205, 145, 158)#CD919E
    pink4pink4rgb(139, 99, 108)#8B636C
    PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
    PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
    PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
    PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
    PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
    LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
    LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
    LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
    LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
    LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
    maroonmaroonrgb(176, 48, 96)#B03060
    HotPink3HotPink3rgb(205, 96, 144)#CD6090
    VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
    VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
    VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
    VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
    HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
    HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
    HotPink4HotPink4rgb(139, 58, 98)#8B3A62
    HotPinkHotPinkrgb(255, 105, 180)#FF69B4
    DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
    DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
    DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
    DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
    DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
    maroon1maroon1rgb(255, 52, 179)#FF34B3
    maroon2maroon2rgb(238, 48, 167)#EE30A7
    maroon3maroon3rgb(205, 41, 144)#CD2990
    maroon4maroon4rgb(139, 28, 98)#8B1C62
    MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
    VioletRedVioletRedrgb(208, 32, 144)#D02090
    orchid2orchid2rgb(238, 122, 233)#EE7AE9
    orchidorchidrgb(218, 112, 214)#DA70D6
    orchid1orchid1rgb(255, 131, 250)#FF83FA
    orchid3orchid3rgb(205, 105, 201)#CD69C9
    orchid4orchid4rgb(139, 71, 137)#8B4789
    thistle1thistle1rgb(255, 225, 255)#FFE1FF
    thistle2thistle2rgb(238, 210, 238)#EED2EE
    plum1plum1rgb(255, 187, 255)#FFBBFF
    plum2plum2rgb(238, 174, 238)#EEAEEE
    thistlethistlergb(216, 191, 216)#D8BFD8
    thistle3thistle3rgb(205, 181, 205)#CDB5CD
    plumplumrgb(221, 160, 221)#DDA0DD
    violetvioletrgb(238, 130, 238)#EE82EE
    plum3plum3rgb(205, 150, 205)#CD96CD
    thistle4thistle4rgb(139, 123, 139)#8B7B8B
    fuchsiafuchsiargb(255, 0, 255)#FF00FF
    magentamagentargb(255, 0, 255)#FF00FF
    magenta1magenta1rgb(255, 0, 255)#FF00FF
    plum4plum4rgb(139, 102, 139)#8B668B
    magenta2magenta2rgb(238, 0, 238)#EE00EE
    magenta3magenta3rgb(205, 0, 205)#CD00CD
    DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
    magenta4magenta4rgb(139, 0, 139)#8B008B
    purplepurplergb(128, 0, 128)#800080
    MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
    MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
    MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
    MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
    MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
    DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
    DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
    DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
    DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
    DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
    DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
    purplepurplergb(160, 32, 240)#A020F0
    indigoindigorgb( 75, 0, 130)#4B0082
    BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
    purple2purple2rgb(145, 44, 238)#912CEE
    purple3purple3rgb(125, 38, 205)#7D26CD
    purple4purple4rgb( 85, 26, 139)#551A8B
    purple1purple1rgb(155, 48, 255)#9B30FF
    MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
    MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
    MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
    MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
    MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
    DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
    LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
    MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
    SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
    SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
    SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
    SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
    SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
    GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
    lavenderlavenderrgb(230, 230, 250)#E6E6FA
    bluebluergb( 0, 0, 255)#0000FF
    blue1blue1rgb( 0, 0, 255)#0000FF
    blue2blue2rgb( 0, 0, 238)#0000EE
    blue3blue3rgb( 0, 0, 205)#0000CD
    MediumBlueMediumBluergb( 0, 0, 205)#0000CD
    blue4blue4rgb( 0, 0, 139)#00008B
    DarkBlueDarkBluergb( 0, 0, 139)#00008B
    MidnightBlueMidnightBluergb( 25, 25, 112)#191970
    navynavyrgb( 0, 0, 128)#000080
    NavyBlueNavyBluergb( 0, 0, 128)#000080
    RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
    RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
    RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
    RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
    RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
    CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
    LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
    LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
    LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
    LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
    LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
    SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
    SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
    SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
    SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
    LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
    LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
    SlateGraySlateGrayrgb(112, 128, 144)#708090
    SlateGreySlateGreyrgb(112, 128, 144)#708090
    DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
    DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
    DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
    DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
    DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
    AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
    SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
    SteelBlueSteelBluergb( 70, 130, 180)#4682B4
    SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
    SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
    SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
    SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
    SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
    SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
    SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
    LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
    LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
    LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
    LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
    LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
    SkyBlueSkyBluergb(135, 206, 235)#87CEEB
    LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
    DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
    DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
    DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
    DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
    DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
    LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
    LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
    LightBlueLightBluergb(173, 216, 230)#ADD8E6
    LightBlue4LightBlue4rgb(104, 131, 139)#68838B
    PowderBluePowderBluergb(176, 224, 230)#B0E0E6
    CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
    CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
    CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
    CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
    turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
    turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
    turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
    turquoise4turquoise4rgb( 0, 134, 139)#00868B
    cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
    CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
    DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
    azureazurergb(240, 255, 255)#F0FFFF
    azure1azure1rgb(240, 255, 255)#F0FFFF
    LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
    LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
    azure2azure2rgb(224, 238, 238)#E0EEEE
    LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
    PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
    PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
    PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
    DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
    azure3azure3rgb(193, 205, 205)#C1CDCD
    LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
    DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
    PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
    DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
    azure4azure4rgb(131, 139, 139)#838B8B
    LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
    aquaaquargb( 0, 255, 255)#00FFFF
    cyancyanrgb( 0, 255, 255)#00FFFF
    cyan1cyan1rgb( 0, 255, 255)#00FFFF
    PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
    cyan2cyan2rgb( 0, 238, 238)#00EEEE
    DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
    cyan3cyan3rgb( 0, 205, 205)#00CDCD
    cyan4cyan4rgb( 0, 139, 139)#008B8B
    DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
    tealtealrgb( 0, 128, 128)#008080
    DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
    DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
    MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
    LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
    turquoiseturquoisergb( 64, 224, 208)#40E0D0
    aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
    aquamarineaquamarinergb(127, 255, 212)#7FFFD4
    aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
    aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
    aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
    MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
    MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
    MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
    SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
    SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
    SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
    SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
    SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
    MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
    SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
    SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
    SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
    SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
    SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
    MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
    honeydewhoneydewrgb(240, 255, 240)#F0FFF0
    honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
    honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
    DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
    DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
    PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
    PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
    honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
    LightGreenLightGreenrgb(144, 238, 144)#90EE90
    PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
    DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
    DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
    PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
    honeydew4honeydew4rgb(131, 139, 131)#838B83
    green1green1rgb( 0, 255, 0)#00FF00
    limelimergb( 0, 255, 0)#00FF00
    LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
    DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
    green2green2rgb( 0, 238, 0)#00EE00
    PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
    green3green3rgb( 0, 205, 0)#00CD00
    ForestGreenForestGreenrgb( 34, 139, 34)#228B22
    green4green4rgb( 0, 139, 0)#008B00
    greengreenrgb( 0, 128, 0)#008000
    DarkGreenDarkGreenrgb( 0, 100, 0)#006400
    LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
    chartreusechartreusergb(127, 255, 0)#7FFF00
    chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
    chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
    chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
    chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
    GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
    DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
    DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
    DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
    DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
    DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
    OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
    OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
    OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
    OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
    YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
    OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
    ivoryivoryrgb(255, 255, 240)#FFFFF0
    ivory1ivory1rgb(255, 255, 240)#FFFFF0
    LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
    LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
    beigebeigergb(245, 245, 220)#F5F5DC
    ivory2ivory2rgb(238, 238, 224)#EEEEE0
    LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
    LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
    ivory3ivory3rgb(205, 205, 193)#CDCDC1
    LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
    ivory4ivory4rgb(139, 139, 131)#8B8B83
    LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
    yellowyellowrgb(255, 255, 0)#FFFF00
    yellow1yellow1rgb(255, 255, 0)#FFFF00
    yellow2yellow2rgb(238, 238, 0)#EEEE00
    yellow3yellow3rgb(205, 205, 0)#CDCD00
    yellow4yellow4rgb(139, 139, 0)#8B8B00
    oliveolivergb(128, 128, 0)#808000
    DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
    khaki2khaki2rgb(238, 230, 133)#EEE685
    LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
    khaki1khaki1rgb(255, 246, 143)#FFF68F
    khaki3khaki3rgb(205, 198, 115)#CDC673
    khaki4khaki4rgb(139, 134, 78)#8B864E
    PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
    LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
    LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
    khakikhakirgb(240, 230, 140)#F0E68C
    LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
    LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
    MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
    cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
    goldgoldrgb(255, 215, 0)#FFD700
    gold1gold1rgb(255, 215, 0)#FFD700
    gold2gold2rgb(238, 201, 0)#EEC900
    gold3gold3rgb(205, 173, 0)#CDAD00
    gold4gold4rgb(139, 117, 0)#8B7500
    LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
    LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
    LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
    LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
    LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
    cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
    cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
    cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
    cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
    goldenrodgoldenrodrgb(218, 165, 32)#DAA520
    goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
    goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
    goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
    goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
    DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
    DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
    DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
    DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
    DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
    FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
    wheat2wheat2rgb(238, 216, 174)#EED8AE
    OldLaceOldLacergb(253, 245, 230)#FDF5E6
    wheatwheatrgb(245, 222, 179)#F5DEB3
    wheat1wheat1rgb(255, 231, 186)#FFE7BA
    wheat3wheat3rgb(205, 186, 150)#CDBA96
    orangeorangergb(255, 165, 0)#FFA500
    orange1orange1rgb(255, 165, 0)#FFA500
    orange2orange2rgb(238, 154, 0)#EE9A00
    orange3orange3rgb(205, 133, 0)#CD8500
    orange4orange4rgb(139, 90, 0)#8B5A00
    wheat4wheat4rgb(139, 126, 102)#8B7E66
    moccasinmoccasinrgb(255, 228, 181)#FFE4B5
    PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
    NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
    BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
    NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
    NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
    NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
    NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
    AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
    AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
    tantanrgb(210, 180, 140)#D2B48C
    bisque4bisque4rgb(139, 125, 107)#8B7D6B
    burlywoodburlywoodrgb(222, 184, 135)#DEB887
    AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
    burlywood1burlywood1rgb(255, 211, 155)#FFD39B
    burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
    burlywood2burlywood2rgb(238, 197, 145)#EEC591
    AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
    burlywood4burlywood4rgb(139, 115, 85)#8B7355
    AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
    DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
    bisque2bisque2rgb(238, 213, 183)#EED5B7
    bisquebisquergb(255, 228, 196)#FFE4C4
    bisque1bisque1rgb(255, 228, 196)#FFE4C4
    bisque3bisque3rgb(205, 183, 158)#CDB79E
    DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
    linenlinenrgb(250, 240, 230)#FAF0E6
    DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
    DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
    DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
    peruperurgb(205, 133, 63)#CD853F
    tan1tan1rgb(255, 165, 79)#FFA54F
    tan2tan2rgb(238, 154, 73)#EE9A49
    tan3tan3rgb(205, 133, 63)#CD853F
    tan4tan4rgb(139, 90, 43)#8B5A2B
    PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
    PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
    PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
    PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
    PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
    SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
    seashell4seashell4rgb(139, 134, 130)#8B8682
    seashell2seashell2rgb(238, 229, 222)#EEE5DE
    seashell3seashell3rgb(205, 197, 191)#CDC5BF
    chocolatechocolatergb(210, 105, 30)#D2691E
    chocolate1chocolate1rgb(255, 127, 36)#FF7F24
    chocolate2chocolate2rgb(238, 118, 33)#EE7621
    chocolate3chocolate3rgb(205, 102, 29)#CD661D
    chocolate4chocolate4rgb(139, 69, 19)#8B4513
    SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
    seashellseashellrgb(255, 245, 238)#FFF5EE
    seashell1seashell1rgb(255, 245, 238)#FFF5EE
    sienna4sienna4rgb(139, 71, 38)#8B4726
    siennasiennargb(160, 82, 45)#A0522D
    sienna1sienna1rgb(255, 130, 71)#FF8247
    sienna2sienna2rgb(238, 121, 66)#EE7942
    sienna3sienna3rgb(205, 104, 57)#CD6839
    LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
    LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
    LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
    LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
    LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
    coralcoralrgb(255, 127, 80)#FF7F50
    OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
    OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
    OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
    OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
    OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
    DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
    salmon1salmon1rgb(255, 140, 105)#FF8C69
    salmon2salmon2rgb(238, 130, 98)#EE8262
    salmon3salmon3rgb(205, 112, 84)#CD7054
    salmon4salmon4rgb(139, 76, 57)#8B4C39
    coral1coral1rgb(255, 114, 86)#FF7256
    coral2coral2rgb(238, 106, 80)#EE6A50
    coral3coral3rgb(205, 91, 69)#CD5B45
    coral4coral4rgb(139, 62, 47)#8B3E2F
    tomato4tomato4rgb(139, 54, 38)#8B3626
    tomatotomatorgb(255, 99, 71)#FF6347
    tomato1tomato1rgb(255, 99, 71)#FF6347
    tomato2tomato2rgb(238, 92, 66)#EE5C42
    tomato3tomato3rgb(205, 79, 57)#CD4F39
    MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
    MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
    MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
    MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
    salmonsalmonrgb(250, 128, 114)#FA8072
    MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
    whitewhitergb(255, 255, 255)#FFFFFF
    gray100gray100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    gray99gray99rgb(252, 252, 252)#FCFCFC
    grey99grey99rgb(252, 252, 252)#FCFCFC
    gray98gray98rgb(250, 250, 250)#FAFAFA
    grey98grey98rgb(250, 250, 250)#FAFAFA
    gray97gray97rgb(247, 247, 247)#F7F7F7
    grey97grey97rgb(247, 247, 247)#F7F7F7
    gray96gray96rgb(245, 245, 245)#F5F5F5
    grey96grey96rgb(245, 245, 245)#F5F5F5
    WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
    gray95gray95rgb(242, 242, 242)#F2F2F2
    grey95grey95rgb(242, 242, 242)#F2F2F2
    gray94gray94rgb(240, 240, 240)#F0F0F0
    grey94grey94rgb(240, 240, 240)#F0F0F0
    gray93gray93rgb(237, 237, 237)#EDEDED
    grey93grey93rgb(237, 237, 237)#EDEDED
    gray92gray92rgb(235, 235, 235)#EBEBEB
    grey92grey92rgb(235, 235, 235)#EBEBEB
    gray91gray91rgb(232, 232, 232)#E8E8E8
    grey91grey91rgb(232, 232, 232)#E8E8E8
    gray90gray90rgb(229, 229, 229)#E5E5E5
    grey90grey90rgb(229, 229, 229)#E5E5E5
    gray89gray89rgb(227, 227, 227)#E3E3E3
    grey89grey89rgb(227, 227, 227)#E3E3E3
    gray88gray88rgb(224, 224, 224)#E0E0E0
    grey88grey88rgb(224, 224, 224)#E0E0E0
    gray87gray87rgb(222, 222, 222)#DEDEDE
    grey87grey87rgb(222, 222, 222)#DEDEDE
    gainsborogainsbororgb(220, 220, 220)#DCDCDC
    gray86gray86rgb(219, 219, 219)#DBDBDB
    grey86grey86rgb(219, 219, 219)#DBDBDB
    gray85gray85rgb(217, 217, 217)#D9D9D9
    grey85grey85rgb(217, 217, 217)#D9D9D9
    gray84gray84rgb(214, 214, 214)#D6D6D6
    grey84grey84rgb(214, 214, 214)#D6D6D6
    gray83gray83rgb(212, 212, 212)#D4D4D4
    grey83grey83rgb(212, 212, 212)#D4D4D4
    LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
    LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
    gray82gray82rgb(209, 209, 209)#D1D1D1
    grey82grey82rgb(209, 209, 209)#D1D1D1
    gray81gray81rgb(207, 207, 207)#CFCFCF
    grey81grey81rgb(207, 207, 207)#CFCFCF
    gray80gray80rgb(204, 204, 204)#CCCCCC
    grey80grey80rgb(204, 204, 204)#CCCCCC
    gray79gray79rgb(201, 201, 201)#C9C9C9
    grey79grey79rgb(201, 201, 201)#C9C9C9
    gray78gray78rgb(199, 199, 199)#C7C7C7
    grey78grey78rgb(199, 199, 199)#C7C7C7
    gray77gray77rgb(196, 196, 196)#C4C4C4
    grey77grey77rgb(196, 196, 196)#C4C4C4
    gray76gray76rgb(194, 194, 194)#C2C2C2
    grey76grey76rgb(194, 194, 194)#C2C2C2
    silversilverrgb(192, 192, 192)#C0C0C0
    gray75gray75rgb(191, 191, 191)#BFBFBF
    grey75grey75rgb(191, 191, 191)#BFBFBF
    gray74gray74rgb(189, 189, 189)#BDBDBD
    grey74grey74rgb(189, 189, 189)#BDBDBD
    gray73gray73rgb(186, 186, 186)#BABABA
    grey73grey73rgb(186, 186, 186)#BABABA
    gray72gray72rgb(184, 184, 184)#B8B8B8
    grey72grey72rgb(184, 184, 184)#B8B8B8
    gray71gray71rgb(181, 181, 181)#B5B5B5
    grey71grey71rgb(181, 181, 181)#B5B5B5
    gray70gray70rgb(179, 179, 179)#B3B3B3
    grey70grey70rgb(179, 179, 179)#B3B3B3
    gray69gray69rgb(176, 176, 176)#B0B0B0
    grey69grey69rgb(176, 176, 176)#B0B0B0
    gray68gray68rgb(173, 173, 173)#ADADAD
    grey68grey68rgb(173, 173, 173)#ADADAD
    gray67gray67rgb(171, 171, 171)#ABABAB
    grey67grey67rgb(171, 171, 171)#ABABAB
    DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
    DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
    gray66gray66rgb(168, 168, 168)#A8A8A8
    grey66grey66rgb(168, 168, 168)#A8A8A8
    gray65gray65rgb(166, 166, 166)#A6A6A6
    grey65grey65rgb(166, 166, 166)#A6A6A6
    gray64gray64rgb(163, 163, 163)#A3A3A3
    grey64grey64rgb(163, 163, 163)#A3A3A3
    gray63gray63rgb(161, 161, 161)#A1A1A1
    grey63grey63rgb(161, 161, 161)#A1A1A1
    gray62gray62rgb(158, 158, 158)#9E9E9E
    grey62grey62rgb(158, 158, 158)#9E9E9E
    gray61gray61rgb(156, 156, 156)#9C9C9C
    grey61grey61rgb(156, 156, 156)#9C9C9C
    gray60gray60rgb(153, 153, 153)#999999
    grey60grey60rgb(153, 153, 153)#999999
    gray59gray59rgb(150, 150, 150)#969696
    grey59grey59rgb(150, 150, 150)#969696
    gray58gray58rgb(148, 148, 148)#949494
    grey58grey58rgb(148, 148, 148)#949494
    gray57gray57rgb(145, 145, 145)#919191
    grey57grey57rgb(145, 145, 145)#919191
    gray56gray56rgb(143, 143, 143)#8F8F8F
    grey56grey56rgb(143, 143, 143)#8F8F8F
    gray55gray55rgb(140, 140, 140)#8C8C8C
    grey55grey55rgb(140, 140, 140)#8C8C8C
    gray54gray54rgb(138, 138, 138)#8A8A8A
    grey54grey54rgb(138, 138, 138)#8A8A8A
    gray53gray53rgb(135, 135, 135)#878787
    grey53grey53rgb(135, 135, 135)#878787
    gray52gray52rgb(133, 133, 133)#858585
    grey52grey52rgb(133, 133, 133)#858585
    gray51gray51rgb(130, 130, 130)#828282
    grey51grey51rgb(130, 130, 130)#828282
    fractalfractalrgb(128, 128, 128)#808080
    gray50gray50rgb(127, 127, 127)#7F7F7F
    grey50grey50rgb(127, 127, 127)#7F7F7F
    graygrayrgb(126, 126, 126)#7E7E7E
    gray49gray49rgb(125, 125, 125)#7D7D7D
    grey49grey49rgb(125, 125, 125)#7D7D7D
    gray48gray48rgb(122, 122, 122)#7A7A7A
    grey48grey48rgb(122, 122, 122)#7A7A7A
    gray47gray47rgb(120, 120, 120)#787878
    grey47grey47rgb(120, 120, 120)#787878
    gray46gray46rgb(117, 117, 117)#757575
    grey46grey46rgb(117, 117, 117)#757575
    gray45gray45rgb(115, 115, 115)#737373
    grey45grey45rgb(115, 115, 115)#737373
    gray44gray44rgb(112, 112, 112)#707070
    grey44grey44rgb(112, 112, 112)#707070
    gray43gray43rgb(110, 110, 110)#6E6E6E
    grey43grey43rgb(110, 110, 110)#6E6E6E
    gray42gray42rgb(107, 107, 107)#6B6B6B
    grey42grey42rgb(107, 107, 107)#6B6B6B
    DimGrayDimGrayrgb(105, 105, 105)#696969
    DimGreyDimGreyrgb(105, 105, 105)#696969
    gray41gray41rgb(105, 105, 105)#696969
    grey41grey41rgb(105, 105, 105)#696969
    gray40gray40rgb(102, 102, 102)#666666
    grey40grey40rgb(102, 102, 102)#666666
    gray39gray39rgb( 99, 99, 99)#636363
    grey39grey39rgb( 99, 99, 99)#636363
    gray38gray38rgb( 97, 97, 97)#616161
    grey38grey38rgb( 97, 97, 97)#616161
    gray37gray37rgb( 94, 94, 94)#5E5E5E
    grey37grey37rgb( 94, 94, 94)#5E5E5E
    gray36gray36rgb( 92, 92, 92)#5C5C5C
    grey36grey36rgb( 92, 92, 92)#5C5C5C
    gray35gray35rgb( 89, 89, 89)#595959
    grey35grey35rgb( 89, 89, 89)#595959
    gray34gray34rgb( 87, 87, 87)#575757
    grey34grey34rgb( 87, 87, 87)#575757
    gray33gray33rgb( 84, 84, 84)#545454
    grey33grey33rgb( 84, 84, 84)#545454
    gray32gray32rgb( 82, 82, 82)#525252
    grey32grey32rgb( 82, 82, 82)#525252
    gray31gray31rgb( 79, 79, 79)#4F4F4F
    grey31grey31rgb( 79, 79, 79)#4F4F4F
    gray30gray30rgb( 77, 77, 77)#4D4D4D
    grey30grey30rgb( 77, 77, 77)#4D4D4D
    gray29gray29rgb( 74, 74, 74)#4A4A4A
    grey29grey29rgb( 74, 74, 74)#4A4A4A
    gray28gray28rgb( 71, 71, 71)#474747
    grey28grey28rgb( 71, 71, 71)#474747
    gray27gray27rgb( 69, 69, 69)#454545
    grey27grey27rgb( 69, 69, 69)#454545
    gray26gray26rgb( 66, 66, 66)#424242
    grey26grey26rgb( 66, 66, 66)#424242
    gray25gray25rgb( 64, 64, 64)#404040
    grey25grey25rgb( 64, 64, 64)#404040
    gray24gray24rgb( 61, 61, 61)#3D3D3D
    grey24grey24rgb( 61, 61, 61)#3D3D3D
    gray23gray23rgb( 59, 59, 59)#3B3B3B
    grey23grey23rgb( 59, 59, 59)#3B3B3B
    gray22gray22rgb( 56, 56, 56)#383838
    grey22grey22rgb( 56, 56, 56)#383838
    gray21gray21rgb( 54, 54, 54)#363636
    grey21grey21rgb( 54, 54, 54)#363636
    gray20gray20rgb( 51, 51, 51)#333333
    grey20grey20rgb( 51, 51, 51)#333333
    gray19gray19rgb( 48, 48, 48)#303030
    grey19grey19rgb( 48, 48, 48)#303030
    gray18gray18rgb( 46, 46, 46)#2E2E2E
    grey18grey18rgb( 46, 46, 46)#2E2E2E
    gray17gray17rgb( 43, 43, 43)#2B2B2B
    grey17grey17rgb( 43, 43, 43)#2B2B2B
    gray16gray16rgb( 41, 41, 41)#292929
    grey16grey16rgb( 41, 41, 41)#292929
    gray15gray15rgb( 38, 38, 38)#262626
    grey15grey15rgb( 38, 38, 38)#262626
    gray14gray14rgb( 36, 36, 36)#242424
    grey14grey14rgb( 36, 36, 36)#242424
    gray13gray13rgb( 33, 33, 33)#212121
    grey13grey13rgb( 33, 33, 33)#212121
    gray12gray12rgb( 31, 31, 31)#1F1F1F
    grey12grey12rgb( 31, 31, 31)#1F1F1F
    gray11gray11rgb( 28, 28, 28)#1C1C1C
    grey11grey11rgb( 28, 28, 28)#1C1C1C
    gray10gray10rgb( 26, 26, 26)#1A1A1A
    grey10grey10rgb( 26, 26, 26)#1A1A1A
    gray9gray9rgb( 23, 23, 23)#171717
    grey9grey9rgb( 23, 23, 23)#171717
    gray8gray8rgb( 20, 20, 20)#141414
    grey8grey8rgb( 20, 20, 20)#141414
    gray7gray7rgb( 18, 18, 18)#121212
    grey7grey7rgb( 18, 18, 18)#121212
    gray6gray6rgb( 15, 15, 15)#0F0F0F
    grey6grey6rgb( 15, 15, 15)#0F0F0F
    gray5gray5rgb( 13, 13, 13)#0D0D0D
    grey5grey5rgb( 13, 13, 13)#0D0D0D
    gray4gray4rgb( 10, 10, 10)#0A0A0A
    grey4grey4rgb( 10, 10, 10)#0A0A0A
    gray3gray3rgb( 8, 8, 8)#080808
    grey3grey3rgb( 8, 8, 8)#080808
    gray2gray2rgb( 5, 5, 5)#050505
    grey2grey2rgb( 5, 5, 5)#050505
    gray1gray1rgb( 3, 3, 3)#030303
    grey1grey1rgb( 3, 3, 3)#030303
    blackblackrgb( 0, 0, 0)#000000
    gray0gray0rgb( 0, 0, 0)#000000
    grey0grey0rgb( 0, 0, 0)#000000
    opaqueopaquergb( 0, 0, 0)#000000
    nonenonergba( 0, 0, 0, 0.0)#00000000
    transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
    + +
    + +
    + + 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 @@ + + + + +
    +
    +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
    +
    + +
    +WHERE THE COLORNAMES WILL GO +
    + +
    CLICK TO SHOW HEXES
    +
    CLICK TO SHOW INFO
    + + + + + + + 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 @@ + + + + +
    +
    +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
    +
    + +
    +WHERE THE COLORNAMES WILL GO +
    + +
    CLICK TO SHOW HEXES
    +
    CLICK TO SHOW INFO
    + + + + 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 = "
    "+"
    "+"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
    "+"
    "+"
    WHERE THE COLORNAMES WILL GO
    "+""+"" + + +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 @@ + + + + + + +
    +
    +
    +
    +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
    +
    +
    + +
    +CLICK TO CHOOSE THE COLOR +
    + +
    + +OPTIONS +
    CLICK TO USE HEX KEYS
    +
    +
    CLICK TO TOGGLE PALATE INFO
    +
    +
    CLICK TO TOGGLE BACKGROUNDS
    +
    +
    +
    YOU WILL CHOOSE:
    +
    +to choose transparent as a color, click HERE +
    +
    + + + + + + 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("""\n\n +") +w.write("\n
    \n") +for x in range(674): + w.write("
    \n"+colornames[x]+"
    \n") +w.write("
    \n") +w.write("
    WHERE THE COLORNAMES WILL GO
    ") +w.write("") +w.write("\n") +w.write("\n") +w.write("\n\n") 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 @@ + + + + + + +
    +
    +
    +
    +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
    +
    +
    + +
    +CLICK TO CHOOSE THE COLOR +
    + +
    + +OPTIONS +
    CLICK TO USE HEX KEYS
    +
    +
    CLICK TO TOGGLE PALATE INFO
    +
    +
    CLICK TO TOGGLE BACKGROUNDS
    +
    +
    +
    YOU WILL CHOOSE:
    +
    +to choose transparent as a color, click HERE +
    +
    + + + + + + 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 @@ + + + + +
    +
    +
    +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
    +
    + +
    +CLICK TO CHOOSE THE COLOR +
    + +
    + +OPTIONS +
    CLICK TO USE HEX KEYS
    +
    +
    CLICK TO TOGGLE PALATE INFO
    +
    +
    CLICK TO TOGGLE BACKGROUNDS
    +
    +
    +
    YOU WILL CHOOSE:
    +
    +to choose transparent as a color, click HERE +
    +
    + + + + + + diff --git a/frontend/imgrid/colors/colors/minoan.gif b/frontend/imgrid/colors/colors/minoan.gif new file mode 100755 index 0000000..4ceb804 Binary files /dev/null and b/frontend/imgrid/colors/colors/minoan.gif differ 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 @@ + + + + +
    +
    +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
    +
    + +
    +WHERE THE COLORNAMES WILL GO +
    + +
    CLICK TO SHOW HEXES
    +
    CLICK TO SHOW INFO
    + + + + + + 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 @@ + + + + + + + + + + +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + diff --git a/frontend/imgrid/colors/colors/vase.gif b/frontend/imgrid/colors/colors/vase.gif new file mode 100755 index 0000000..dc1c104 Binary files /dev/null and b/frontend/imgrid/colors/colors/vase.gif differ diff --git a/frontend/imgrid/colors/colors/vase.png b/frontend/imgrid/colors/colors/vase.png new file mode 100755 index 0000000..153e72b Binary files /dev/null and b/frontend/imgrid/colors/colors/vase.png differ diff --git a/frontend/imgrid/colors/colors/vaseshim.png b/frontend/imgrid/colors/colors/vaseshim.png new file mode 100755 index 0000000..7dbd352 Binary files /dev/null and b/frontend/imgrid/colors/colors/vaseshim.png differ diff --git a/frontend/imgrid/colors/colors/whiteshim.png b/frontend/imgrid/colors/colors/whiteshim.png new file mode 100755 index 0000000..6b58334 Binary files /dev/null and b/frontend/imgrid/colors/colors/whiteshim.png differ diff --git a/frontend/imgrid/colors/grayshim.png b/frontend/imgrid/colors/grayshim.png new file mode 100755 index 0000000..6f71223 Binary files /dev/null and b/frontend/imgrid/colors/grayshim.png differ diff --git a/frontend/imgrid/colors/hoverbutton.png b/frontend/imgrid/colors/hoverbutton.png new file mode 100755 index 0000000..b14281e Binary files /dev/null and b/frontend/imgrid/colors/hoverbutton.png differ 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 @@ + + + + +
    +
    +
    +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
    +
    + +
    +CLICK TO CHOOSE THE COLOR +
    + +
    + OPTIONS +
     
    +
    +
    CLICK TO TOGGLE PALATE INFO
    +
    +
    CLICK TO TOGGLE BACKGROUNDS
    +
    +
    +
    YOU WILL CHOOSE:
    +
    + to choose transparent as a color, click HERE +
    +
    + +
    +
    + + + + + + + + + + + + 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 new file mode 100755 index 0000000..670df08 Binary files /dev/null and b/frontend/imgrid/colors/js/ditherbackground.gif differ 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 new file mode 100755 index 0000000..c1ef116 Binary files /dev/null and b/frontend/imgrid/colors/js/hoverbackground.jpg differ 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('

    note: the .jpg image format does not support transparency') + }); + + 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"?"":"")+""),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;g0){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=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;ic)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(;j0)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(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?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
    a",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="
    ",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ",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-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=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=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-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;i0?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;g0){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+~,(\[\\]+)+|[>+~])(\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;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=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 bc[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=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",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.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="

    ";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="
    ";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;g0)for(h=g;h0: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-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-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:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_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
    ","
    "]),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>");try{for(var c=0,d=this.length;c1&&l0?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>");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]===""&&!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=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>/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("
    ").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=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
    ";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 @@ + + + + + + + + +
    +

    List of Color Names

    +
    + +

    a list of named colors for use with PHOTOBLASTER:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameColorRGBHex
    snowsnowrgb(255, 250, 250)#FFFAFA
    snow1snow1rgb(255, 250, 250)#FFFAFA
    snow2snow2rgb(238, 233, 233)#EEE9E9
    RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
    RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
    snow3snow3rgb(205, 201, 201)#CDC9C9
    LightCoralLightCoralrgb(240, 128, 128)#F08080
    IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
    RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
    IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
    RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
    brown1brown1rgb(255, 64, 64)#FF4040
    firebrick1firebrick1rgb(255, 48, 48)#FF3030
    brown2brown2rgb(238, 59, 59)#EE3B3B
    IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
    IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
    firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
    snow4snow4rgb(139, 137, 137)#8B8989
    brown3brown3rgb(205, 51, 51)#CD3333
    redredrgb(255, 0, 0)#FF0000
    red1red1rgb(255, 0, 0)#FF0000
    RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
    firebrick3firebrick3rgb(205, 38, 38)#CD2626
    red2red2rgb(238, 0, 0)#EE0000
    firebrickfirebrickrgb(178, 34, 34)#B22222
    brownbrownrgb(165, 42, 42)#A52A2A
    red3red3rgb(205, 0, 0)#CD0000
    IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
    brown4brown4rgb(139, 35, 35)#8B2323
    firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
    DarkRedDarkRedrgb(139, 0, 0)#8B0000
    red4red4rgb(139, 0, 0)#8B0000
    maroonmaroonrgb(128, 0, 0)#800000
    LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
    LightPink3LightPink3rgb(205, 140, 149)#CD8C95
    LightPink4LightPink4rgb(139, 95, 101)#8B5F65
    LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
    LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
    pinkpinkrgb(255, 192, 203)#FFC0CB
    crimsoncrimsonrgb(220, 20, 60)#DC143C
    pink1pink1rgb(255, 181, 197)#FFB5C5
    pink2pink2rgb(238, 169, 184)#EEA9B8
    pink3pink3rgb(205, 145, 158)#CD919E
    pink4pink4rgb(139, 99, 108)#8B636C
    PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
    PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
    PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
    PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
    PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
    LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
    LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
    LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
    LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
    LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
    maroonmaroonrgb(176, 48, 96)#B03060
    HotPink3HotPink3rgb(205, 96, 144)#CD6090
    VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
    VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
    VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
    VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
    HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
    HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
    HotPink4HotPink4rgb(139, 58, 98)#8B3A62
    HotPinkHotPinkrgb(255, 105, 180)#FF69B4
    DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
    DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
    DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
    DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
    DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
    maroon1maroon1rgb(255, 52, 179)#FF34B3
    maroon2maroon2rgb(238, 48, 167)#EE30A7
    maroon3maroon3rgb(205, 41, 144)#CD2990
    maroon4maroon4rgb(139, 28, 98)#8B1C62
    MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
    VioletRedVioletRedrgb(208, 32, 144)#D02090
    orchid2orchid2rgb(238, 122, 233)#EE7AE9
    orchidorchidrgb(218, 112, 214)#DA70D6
    orchid1orchid1rgb(255, 131, 250)#FF83FA
    orchid3orchid3rgb(205, 105, 201)#CD69C9
    orchid4orchid4rgb(139, 71, 137)#8B4789
    thistle1thistle1rgb(255, 225, 255)#FFE1FF
    thistle2thistle2rgb(238, 210, 238)#EED2EE
    plum1plum1rgb(255, 187, 255)#FFBBFF
    plum2plum2rgb(238, 174, 238)#EEAEEE
    thistlethistlergb(216, 191, 216)#D8BFD8
    thistle3thistle3rgb(205, 181, 205)#CDB5CD
    plumplumrgb(221, 160, 221)#DDA0DD
    violetvioletrgb(238, 130, 238)#EE82EE
    plum3plum3rgb(205, 150, 205)#CD96CD
    thistle4thistle4rgb(139, 123, 139)#8B7B8B
    fuchsiafuchsiargb(255, 0, 255)#FF00FF
    magentamagentargb(255, 0, 255)#FF00FF
    magenta1magenta1rgb(255, 0, 255)#FF00FF
    plum4plum4rgb(139, 102, 139)#8B668B
    magenta2magenta2rgb(238, 0, 238)#EE00EE
    magenta3magenta3rgb(205, 0, 205)#CD00CD
    DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
    magenta4magenta4rgb(139, 0, 139)#8B008B
    purplepurplergb(128, 0, 128)#800080
    MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
    MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
    MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
    MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
    MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
    DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
    DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
    DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
    DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
    DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
    DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
    purplepurplergb(160, 32, 240)#A020F0
    indigoindigorgb( 75, 0, 130)#4B0082
    BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
    purple2purple2rgb(145, 44, 238)#912CEE
    purple3purple3rgb(125, 38, 205)#7D26CD
    purple4purple4rgb( 85, 26, 139)#551A8B
    purple1purple1rgb(155, 48, 255)#9B30FF
    MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
    MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
    MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
    MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
    MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
    DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
    LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
    MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
    SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
    SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
    SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
    SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
    SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
    GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
    lavenderlavenderrgb(230, 230, 250)#E6E6FA
    bluebluergb( 0, 0, 255)#0000FF
    blue1blue1rgb( 0, 0, 255)#0000FF
    blue2blue2rgb( 0, 0, 238)#0000EE
    blue3blue3rgb( 0, 0, 205)#0000CD
    MediumBlueMediumBluergb( 0, 0, 205)#0000CD
    blue4blue4rgb( 0, 0, 139)#00008B
    DarkBlueDarkBluergb( 0, 0, 139)#00008B
    MidnightBlueMidnightBluergb( 25, 25, 112)#191970
    navynavyrgb( 0, 0, 128)#000080
    NavyBlueNavyBluergb( 0, 0, 128)#000080
    RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
    RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
    RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
    RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
    RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
    CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
    LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
    LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
    LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
    LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
    LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
    SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
    SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
    SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
    SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
    LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
    LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
    SlateGraySlateGrayrgb(112, 128, 144)#708090
    SlateGreySlateGreyrgb(112, 128, 144)#708090
    DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
    DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
    DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
    DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
    DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
    AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
    SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
    SteelBlueSteelBluergb( 70, 130, 180)#4682B4
    SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
    SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
    SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
    SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
    SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
    SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
    SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
    LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
    LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
    LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
    LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
    LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
    SkyBlueSkyBluergb(135, 206, 235)#87CEEB
    LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
    DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
    DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
    DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
    DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
    DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
    LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
    LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
    LightBlueLightBluergb(173, 216, 230)#ADD8E6
    LightBlue4LightBlue4rgb(104, 131, 139)#68838B
    PowderBluePowderBluergb(176, 224, 230)#B0E0E6
    CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
    CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
    CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
    CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
    turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
    turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
    turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
    turquoise4turquoise4rgb( 0, 134, 139)#00868B
    cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
    CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
    DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
    azureazurergb(240, 255, 255)#F0FFFF
    azure1azure1rgb(240, 255, 255)#F0FFFF
    LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
    LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
    azure2azure2rgb(224, 238, 238)#E0EEEE
    LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
    PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
    PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
    PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
    DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
    azure3azure3rgb(193, 205, 205)#C1CDCD
    LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
    DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
    PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
    DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
    azure4azure4rgb(131, 139, 139)#838B8B
    LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
    aquaaquargb( 0, 255, 255)#00FFFF
    cyancyanrgb( 0, 255, 255)#00FFFF
    cyan1cyan1rgb( 0, 255, 255)#00FFFF
    PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
    cyan2cyan2rgb( 0, 238, 238)#00EEEE
    DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
    cyan3cyan3rgb( 0, 205, 205)#00CDCD
    cyan4cyan4rgb( 0, 139, 139)#008B8B
    DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
    tealtealrgb( 0, 128, 128)#008080
    DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
    DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
    MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
    LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
    turquoiseturquoisergb( 64, 224, 208)#40E0D0
    aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
    aquamarineaquamarinergb(127, 255, 212)#7FFFD4
    aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
    aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
    aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
    MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
    MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
    MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
    SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
    SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
    SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
    SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
    SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
    MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
    SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
    SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
    SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
    SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
    SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
    MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
    honeydewhoneydewrgb(240, 255, 240)#F0FFF0
    honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
    honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
    DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
    DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
    PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
    PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
    honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
    LightGreenLightGreenrgb(144, 238, 144)#90EE90
    PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
    DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
    DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
    PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
    honeydew4honeydew4rgb(131, 139, 131)#838B83
    green1green1rgb( 0, 255, 0)#00FF00
    limelimergb( 0, 255, 0)#00FF00
    LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
    DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
    green2green2rgb( 0, 238, 0)#00EE00
    PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
    green3green3rgb( 0, 205, 0)#00CD00
    ForestGreenForestGreenrgb( 34, 139, 34)#228B22
    green4green4rgb( 0, 139, 0)#008B00
    greengreenrgb( 0, 128, 0)#008000
    DarkGreenDarkGreenrgb( 0, 100, 0)#006400
    LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
    chartreusechartreusergb(127, 255, 0)#7FFF00
    chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
    chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
    chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
    chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
    GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
    DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
    DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
    DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
    DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
    DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
    OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
    OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
    OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
    OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
    YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
    OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
    ivoryivoryrgb(255, 255, 240)#FFFFF0
    ivory1ivory1rgb(255, 255, 240)#FFFFF0
    LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
    LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
    beigebeigergb(245, 245, 220)#F5F5DC
    ivory2ivory2rgb(238, 238, 224)#EEEEE0
    LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
    LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
    ivory3ivory3rgb(205, 205, 193)#CDCDC1
    LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
    ivory4ivory4rgb(139, 139, 131)#8B8B83
    LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
    yellowyellowrgb(255, 255, 0)#FFFF00
    yellow1yellow1rgb(255, 255, 0)#FFFF00
    yellow2yellow2rgb(238, 238, 0)#EEEE00
    yellow3yellow3rgb(205, 205, 0)#CDCD00
    yellow4yellow4rgb(139, 139, 0)#8B8B00
    oliveolivergb(128, 128, 0)#808000
    DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
    khaki2khaki2rgb(238, 230, 133)#EEE685
    LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
    khaki1khaki1rgb(255, 246, 143)#FFF68F
    khaki3khaki3rgb(205, 198, 115)#CDC673
    khaki4khaki4rgb(139, 134, 78)#8B864E
    PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
    LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
    LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
    khakikhakirgb(240, 230, 140)#F0E68C
    LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
    LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
    MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
    cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
    goldgoldrgb(255, 215, 0)#FFD700
    gold1gold1rgb(255, 215, 0)#FFD700
    gold2gold2rgb(238, 201, 0)#EEC900
    gold3gold3rgb(205, 173, 0)#CDAD00
    gold4gold4rgb(139, 117, 0)#8B7500
    LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
    LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
    LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
    LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
    LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
    cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
    cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
    cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
    cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
    goldenrodgoldenrodrgb(218, 165, 32)#DAA520
    goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
    goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
    goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
    goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
    DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
    DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
    DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
    DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
    DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
    FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
    wheat2wheat2rgb(238, 216, 174)#EED8AE
    OldLaceOldLacergb(253, 245, 230)#FDF5E6
    wheatwheatrgb(245, 222, 179)#F5DEB3
    wheat1wheat1rgb(255, 231, 186)#FFE7BA
    wheat3wheat3rgb(205, 186, 150)#CDBA96
    orangeorangergb(255, 165, 0)#FFA500
    orange1orange1rgb(255, 165, 0)#FFA500
    orange2orange2rgb(238, 154, 0)#EE9A00
    orange3orange3rgb(205, 133, 0)#CD8500
    orange4orange4rgb(139, 90, 0)#8B5A00
    wheat4wheat4rgb(139, 126, 102)#8B7E66
    moccasinmoccasinrgb(255, 228, 181)#FFE4B5
    PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
    NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
    BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
    NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
    NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
    NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
    NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
    AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
    AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
    tantanrgb(210, 180, 140)#D2B48C
    bisque4bisque4rgb(139, 125, 107)#8B7D6B
    burlywoodburlywoodrgb(222, 184, 135)#DEB887
    AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
    burlywood1burlywood1rgb(255, 211, 155)#FFD39B
    burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
    burlywood2burlywood2rgb(238, 197, 145)#EEC591
    AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
    burlywood4burlywood4rgb(139, 115, 85)#8B7355
    AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
    DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
    bisque2bisque2rgb(238, 213, 183)#EED5B7
    bisquebisquergb(255, 228, 196)#FFE4C4
    bisque1bisque1rgb(255, 228, 196)#FFE4C4
    bisque3bisque3rgb(205, 183, 158)#CDB79E
    DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
    linenlinenrgb(250, 240, 230)#FAF0E6
    DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
    DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
    DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
    peruperurgb(205, 133, 63)#CD853F
    tan1tan1rgb(255, 165, 79)#FFA54F
    tan2tan2rgb(238, 154, 73)#EE9A49
    tan3tan3rgb(205, 133, 63)#CD853F
    tan4tan4rgb(139, 90, 43)#8B5A2B
    PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
    PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
    PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
    PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
    PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
    SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
    seashell4seashell4rgb(139, 134, 130)#8B8682
    seashell2seashell2rgb(238, 229, 222)#EEE5DE
    seashell3seashell3rgb(205, 197, 191)#CDC5BF
    chocolatechocolatergb(210, 105, 30)#D2691E
    chocolate1chocolate1rgb(255, 127, 36)#FF7F24
    chocolate2chocolate2rgb(238, 118, 33)#EE7621
    chocolate3chocolate3rgb(205, 102, 29)#CD661D
    chocolate4chocolate4rgb(139, 69, 19)#8B4513
    SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
    seashellseashellrgb(255, 245, 238)#FFF5EE
    seashell1seashell1rgb(255, 245, 238)#FFF5EE
    sienna4sienna4rgb(139, 71, 38)#8B4726
    siennasiennargb(160, 82, 45)#A0522D
    sienna1sienna1rgb(255, 130, 71)#FF8247
    sienna2sienna2rgb(238, 121, 66)#EE7942
    sienna3sienna3rgb(205, 104, 57)#CD6839
    LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
    LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
    LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
    LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
    LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
    coralcoralrgb(255, 127, 80)#FF7F50
    OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
    OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
    OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
    OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
    OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
    DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
    salmon1salmon1rgb(255, 140, 105)#FF8C69
    salmon2salmon2rgb(238, 130, 98)#EE8262
    salmon3salmon3rgb(205, 112, 84)#CD7054
    salmon4salmon4rgb(139, 76, 57)#8B4C39
    coral1coral1rgb(255, 114, 86)#FF7256
    coral2coral2rgb(238, 106, 80)#EE6A50
    coral3coral3rgb(205, 91, 69)#CD5B45
    coral4coral4rgb(139, 62, 47)#8B3E2F
    tomato4tomato4rgb(139, 54, 38)#8B3626
    tomatotomatorgb(255, 99, 71)#FF6347
    tomato1tomato1rgb(255, 99, 71)#FF6347
    tomato2tomato2rgb(238, 92, 66)#EE5C42
    tomato3tomato3rgb(205, 79, 57)#CD4F39
    MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
    MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
    MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
    MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
    salmonsalmonrgb(250, 128, 114)#FA8072
    MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
    whitewhitergb(255, 255, 255)#FFFFFF
    gray100gray100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    gray99gray99rgb(252, 252, 252)#FCFCFC
    grey99grey99rgb(252, 252, 252)#FCFCFC
    gray98gray98rgb(250, 250, 250)#FAFAFA
    grey98grey98rgb(250, 250, 250)#FAFAFA
    gray97gray97rgb(247, 247, 247)#F7F7F7
    grey97grey97rgb(247, 247, 247)#F7F7F7
    gray96gray96rgb(245, 245, 245)#F5F5F5
    grey96grey96rgb(245, 245, 245)#F5F5F5
    WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
    gray95gray95rgb(242, 242, 242)#F2F2F2
    grey95grey95rgb(242, 242, 242)#F2F2F2
    gray94gray94rgb(240, 240, 240)#F0F0F0
    grey94grey94rgb(240, 240, 240)#F0F0F0
    gray93gray93rgb(237, 237, 237)#EDEDED
    grey93grey93rgb(237, 237, 237)#EDEDED
    gray92gray92rgb(235, 235, 235)#EBEBEB
    grey92grey92rgb(235, 235, 235)#EBEBEB
    gray91gray91rgb(232, 232, 232)#E8E8E8
    grey91grey91rgb(232, 232, 232)#E8E8E8
    gray90gray90rgb(229, 229, 229)#E5E5E5
    grey90grey90rgb(229, 229, 229)#E5E5E5
    gray89gray89rgb(227, 227, 227)#E3E3E3
    grey89grey89rgb(227, 227, 227)#E3E3E3
    gray88gray88rgb(224, 224, 224)#E0E0E0
    grey88grey88rgb(224, 224, 224)#E0E0E0
    gray87gray87rgb(222, 222, 222)#DEDEDE
    grey87grey87rgb(222, 222, 222)#DEDEDE
    gainsborogainsbororgb(220, 220, 220)#DCDCDC
    gray86gray86rgb(219, 219, 219)#DBDBDB
    grey86grey86rgb(219, 219, 219)#DBDBDB
    gray85gray85rgb(217, 217, 217)#D9D9D9
    grey85grey85rgb(217, 217, 217)#D9D9D9
    gray84gray84rgb(214, 214, 214)#D6D6D6
    grey84grey84rgb(214, 214, 214)#D6D6D6
    gray83gray83rgb(212, 212, 212)#D4D4D4
    grey83grey83rgb(212, 212, 212)#D4D4D4
    LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
    LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
    gray82gray82rgb(209, 209, 209)#D1D1D1
    grey82grey82rgb(209, 209, 209)#D1D1D1
    gray81gray81rgb(207, 207, 207)#CFCFCF
    grey81grey81rgb(207, 207, 207)#CFCFCF
    gray80gray80rgb(204, 204, 204)#CCCCCC
    grey80grey80rgb(204, 204, 204)#CCCCCC
    gray79gray79rgb(201, 201, 201)#C9C9C9
    grey79grey79rgb(201, 201, 201)#C9C9C9
    gray78gray78rgb(199, 199, 199)#C7C7C7
    grey78grey78rgb(199, 199, 199)#C7C7C7
    gray77gray77rgb(196, 196, 196)#C4C4C4
    grey77grey77rgb(196, 196, 196)#C4C4C4
    gray76gray76rgb(194, 194, 194)#C2C2C2
    grey76grey76rgb(194, 194, 194)#C2C2C2
    silversilverrgb(192, 192, 192)#C0C0C0
    gray75gray75rgb(191, 191, 191)#BFBFBF
    grey75grey75rgb(191, 191, 191)#BFBFBF
    gray74gray74rgb(189, 189, 189)#BDBDBD
    grey74grey74rgb(189, 189, 189)#BDBDBD
    gray73gray73rgb(186, 186, 186)#BABABA
    grey73grey73rgb(186, 186, 186)#BABABA
    gray72gray72rgb(184, 184, 184)#B8B8B8
    grey72grey72rgb(184, 184, 184)#B8B8B8
    gray71gray71rgb(181, 181, 181)#B5B5B5
    grey71grey71rgb(181, 181, 181)#B5B5B5
    gray70gray70rgb(179, 179, 179)#B3B3B3
    grey70grey70rgb(179, 179, 179)#B3B3B3
    gray69gray69rgb(176, 176, 176)#B0B0B0
    grey69grey69rgb(176, 176, 176)#B0B0B0
    gray68gray68rgb(173, 173, 173)#ADADAD
    grey68grey68rgb(173, 173, 173)#ADADAD
    gray67gray67rgb(171, 171, 171)#ABABAB
    grey67grey67rgb(171, 171, 171)#ABABAB
    DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
    DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
    gray66gray66rgb(168, 168, 168)#A8A8A8
    grey66grey66rgb(168, 168, 168)#A8A8A8
    gray65gray65rgb(166, 166, 166)#A6A6A6
    grey65grey65rgb(166, 166, 166)#A6A6A6
    gray64gray64rgb(163, 163, 163)#A3A3A3
    grey64grey64rgb(163, 163, 163)#A3A3A3
    gray63gray63rgb(161, 161, 161)#A1A1A1
    grey63grey63rgb(161, 161, 161)#A1A1A1
    gray62gray62rgb(158, 158, 158)#9E9E9E
    grey62grey62rgb(158, 158, 158)#9E9E9E
    gray61gray61rgb(156, 156, 156)#9C9C9C
    grey61grey61rgb(156, 156, 156)#9C9C9C
    gray60gray60rgb(153, 153, 153)#999999
    grey60grey60rgb(153, 153, 153)#999999
    gray59gray59rgb(150, 150, 150)#969696
    grey59grey59rgb(150, 150, 150)#969696
    gray58gray58rgb(148, 148, 148)#949494
    grey58grey58rgb(148, 148, 148)#949494
    gray57gray57rgb(145, 145, 145)#919191
    grey57grey57rgb(145, 145, 145)#919191
    gray56gray56rgb(143, 143, 143)#8F8F8F
    grey56grey56rgb(143, 143, 143)#8F8F8F
    gray55gray55rgb(140, 140, 140)#8C8C8C
    grey55grey55rgb(140, 140, 140)#8C8C8C
    gray54gray54rgb(138, 138, 138)#8A8A8A
    grey54grey54rgb(138, 138, 138)#8A8A8A
    gray53gray53rgb(135, 135, 135)#878787
    grey53grey53rgb(135, 135, 135)#878787
    gray52gray52rgb(133, 133, 133)#858585
    grey52grey52rgb(133, 133, 133)#858585
    gray51gray51rgb(130, 130, 130)#828282
    grey51grey51rgb(130, 130, 130)#828282
    fractalfractalrgb(128, 128, 128)#808080
    gray50gray50rgb(127, 127, 127)#7F7F7F
    grey50grey50rgb(127, 127, 127)#7F7F7F
    graygrayrgb(126, 126, 126)#7E7E7E
    gray49gray49rgb(125, 125, 125)#7D7D7D
    grey49grey49rgb(125, 125, 125)#7D7D7D
    gray48gray48rgb(122, 122, 122)#7A7A7A
    grey48grey48rgb(122, 122, 122)#7A7A7A
    gray47gray47rgb(120, 120, 120)#787878
    grey47grey47rgb(120, 120, 120)#787878
    gray46gray46rgb(117, 117, 117)#757575
    grey46grey46rgb(117, 117, 117)#757575
    gray45gray45rgb(115, 115, 115)#737373
    grey45grey45rgb(115, 115, 115)#737373
    gray44gray44rgb(112, 112, 112)#707070
    grey44grey44rgb(112, 112, 112)#707070
    gray43gray43rgb(110, 110, 110)#6E6E6E
    grey43grey43rgb(110, 110, 110)#6E6E6E
    gray42gray42rgb(107, 107, 107)#6B6B6B
    grey42grey42rgb(107, 107, 107)#6B6B6B
    DimGrayDimGrayrgb(105, 105, 105)#696969
    DimGreyDimGreyrgb(105, 105, 105)#696969
    gray41gray41rgb(105, 105, 105)#696969
    grey41grey41rgb(105, 105, 105)#696969
    gray40gray40rgb(102, 102, 102)#666666
    grey40grey40rgb(102, 102, 102)#666666
    gray39gray39rgb( 99, 99, 99)#636363
    grey39grey39rgb( 99, 99, 99)#636363
    gray38gray38rgb( 97, 97, 97)#616161
    grey38grey38rgb( 97, 97, 97)#616161
    gray37gray37rgb( 94, 94, 94)#5E5E5E
    grey37grey37rgb( 94, 94, 94)#5E5E5E
    gray36gray36rgb( 92, 92, 92)#5C5C5C
    grey36grey36rgb( 92, 92, 92)#5C5C5C
    gray35gray35rgb( 89, 89, 89)#595959
    grey35grey35rgb( 89, 89, 89)#595959
    gray34gray34rgb( 87, 87, 87)#575757
    grey34grey34rgb( 87, 87, 87)#575757
    gray33gray33rgb( 84, 84, 84)#545454
    grey33grey33rgb( 84, 84, 84)#545454
    gray32gray32rgb( 82, 82, 82)#525252
    grey32grey32rgb( 82, 82, 82)#525252
    gray31gray31rgb( 79, 79, 79)#4F4F4F
    grey31grey31rgb( 79, 79, 79)#4F4F4F
    gray30gray30rgb( 77, 77, 77)#4D4D4D
    grey30grey30rgb( 77, 77, 77)#4D4D4D
    gray29gray29rgb( 74, 74, 74)#4A4A4A
    grey29grey29rgb( 74, 74, 74)#4A4A4A
    gray28gray28rgb( 71, 71, 71)#474747
    grey28grey28rgb( 71, 71, 71)#474747
    gray27gray27rgb( 69, 69, 69)#454545
    grey27grey27rgb( 69, 69, 69)#454545
    gray26gray26rgb( 66, 66, 66)#424242
    grey26grey26rgb( 66, 66, 66)#424242
    gray25gray25rgb( 64, 64, 64)#404040
    grey25grey25rgb( 64, 64, 64)#404040
    gray24gray24rgb( 61, 61, 61)#3D3D3D
    grey24grey24rgb( 61, 61, 61)#3D3D3D
    gray23gray23rgb( 59, 59, 59)#3B3B3B
    grey23grey23rgb( 59, 59, 59)#3B3B3B
    gray22gray22rgb( 56, 56, 56)#383838
    grey22grey22rgb( 56, 56, 56)#383838
    gray21gray21rgb( 54, 54, 54)#363636
    grey21grey21rgb( 54, 54, 54)#363636
    gray20gray20rgb( 51, 51, 51)#333333
    grey20grey20rgb( 51, 51, 51)#333333
    gray19gray19rgb( 48, 48, 48)#303030
    grey19grey19rgb( 48, 48, 48)#303030
    gray18gray18rgb( 46, 46, 46)#2E2E2E
    grey18grey18rgb( 46, 46, 46)#2E2E2E
    gray17gray17rgb( 43, 43, 43)#2B2B2B
    grey17grey17rgb( 43, 43, 43)#2B2B2B
    gray16gray16rgb( 41, 41, 41)#292929
    grey16grey16rgb( 41, 41, 41)#292929
    gray15gray15rgb( 38, 38, 38)#262626
    grey15grey15rgb( 38, 38, 38)#262626
    gray14gray14rgb( 36, 36, 36)#242424
    grey14grey14rgb( 36, 36, 36)#242424
    gray13gray13rgb( 33, 33, 33)#212121
    grey13grey13rgb( 33, 33, 33)#212121
    gray12gray12rgb( 31, 31, 31)#1F1F1F
    grey12grey12rgb( 31, 31, 31)#1F1F1F
    gray11gray11rgb( 28, 28, 28)#1C1C1C
    grey11grey11rgb( 28, 28, 28)#1C1C1C
    gray10gray10rgb( 26, 26, 26)#1A1A1A
    grey10grey10rgb( 26, 26, 26)#1A1A1A
    gray9gray9rgb( 23, 23, 23)#171717
    grey9grey9rgb( 23, 23, 23)#171717
    gray8gray8rgb( 20, 20, 20)#141414
    grey8grey8rgb( 20, 20, 20)#141414
    gray7gray7rgb( 18, 18, 18)#121212
    grey7grey7rgb( 18, 18, 18)#121212
    gray6gray6rgb( 15, 15, 15)#0F0F0F
    grey6grey6rgb( 15, 15, 15)#0F0F0F
    gray5gray5rgb( 13, 13, 13)#0D0D0D
    grey5grey5rgb( 13, 13, 13)#0D0D0D
    gray4gray4rgb( 10, 10, 10)#0A0A0A
    grey4grey4rgb( 10, 10, 10)#0A0A0A
    gray3gray3rgb( 8, 8, 8)#080808
    grey3grey3rgb( 8, 8, 8)#080808
    gray2gray2rgb( 5, 5, 5)#050505
    grey2grey2rgb( 5, 5, 5)#050505
    gray1gray1rgb( 3, 3, 3)#030303
    grey1grey1rgb( 3, 3, 3)#030303
    blackblackrgb( 0, 0, 0)#000000
    gray0gray0rgb( 0, 0, 0)#000000
    grey0grey0rgb( 0, 0, 0)#000000
    opaqueopaquergb( 0, 0, 0)#000000
    nonenonergba( 0, 0, 0, 0.0)#00000000
    transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
    + +
    + +
    + + 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+'
    ') +// } + /*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(' final_Landing_Spot ='+(final_Landing_Spot - new_scrolled_element_top_position)+'
    var vvvvvvelocity='+velocity+'
    clientY='+y_coordinate+'
    new scrolled top='+new_scrolled_element_top_position+'
    ') + // ----- 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+'
    rush='+rush+'
    ') +// } + /*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('
    final resting place='+final_resting_place+'
    var roll_to_zero='+roll_to_zero+'
    clientY='+y_coordinate+'
    easing='+easing+'
    ') + // ----- 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 new file mode 100755 index 0000000..6da99b4 Binary files /dev/null and b/frontend/imgrid/colors/junk/brush.ani differ 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 @@ + + + + + + +
    BLACH BLAH BLAH
    + +

    hex

    +

    text

    +
    CLICK TO SHOW HEXES
    +
    +
    funny
    +
    happy
    +
    silly
    +
    smart
    +
    click it
    + +
    click me
    +
    +
    + +
    choose between hex or text...
    + + + + + 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 @@ + + + + + + + + +
    +

    List of Color Names

    +
    + +

    a list of named colors for use with PHOTOBLASTER:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameColorRGBHex
    snowsnowrgb(255, 250, 250)#FFFAFA
    snow1snow1rgb(255, 250, 250)#FFFAFA
    snow2snow2rgb(238, 233, 233)#EEE9E9
    RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
    RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
    snow3snow3rgb(205, 201, 201)#CDC9C9
    LightCoralLightCoralrgb(240, 128, 128)#F08080
    IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
    RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
    IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
    RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
    brown1brown1rgb(255, 64, 64)#FF4040
    firebrick1firebrick1rgb(255, 48, 48)#FF3030
    brown2brown2rgb(238, 59, 59)#EE3B3B
    IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
    IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
    firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
    snow4snow4rgb(139, 137, 137)#8B8989
    brown3brown3rgb(205, 51, 51)#CD3333
    redredrgb(255, 0, 0)#FF0000
    red1red1rgb(255, 0, 0)#FF0000
    RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
    firebrick3firebrick3rgb(205, 38, 38)#CD2626
    red2red2rgb(238, 0, 0)#EE0000
    firebrickfirebrickrgb(178, 34, 34)#B22222
    brownbrownrgb(165, 42, 42)#A52A2A
    red3red3rgb(205, 0, 0)#CD0000
    IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
    brown4brown4rgb(139, 35, 35)#8B2323
    firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
    DarkRedDarkRedrgb(139, 0, 0)#8B0000
    red4red4rgb(139, 0, 0)#8B0000
    maroonmaroonrgb(128, 0, 0)#800000
    LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
    LightPink3LightPink3rgb(205, 140, 149)#CD8C95
    LightPink4LightPink4rgb(139, 95, 101)#8B5F65
    LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
    LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
    pinkpinkrgb(255, 192, 203)#FFC0CB
    crimsoncrimsonrgb(220, 20, 60)#DC143C
    pink1pink1rgb(255, 181, 197)#FFB5C5
    pink2pink2rgb(238, 169, 184)#EEA9B8
    pink3pink3rgb(205, 145, 158)#CD919E
    pink4pink4rgb(139, 99, 108)#8B636C
    PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
    PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
    PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
    PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
    PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
    LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
    LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
    LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
    LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
    LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
    maroonmaroonrgb(176, 48, 96)#B03060
    HotPink3HotPink3rgb(205, 96, 144)#CD6090
    VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
    VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
    VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
    VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
    HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
    HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
    HotPink4HotPink4rgb(139, 58, 98)#8B3A62
    HotPinkHotPinkrgb(255, 105, 180)#FF69B4
    DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
    DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
    DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
    DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
    DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
    maroon1maroon1rgb(255, 52, 179)#FF34B3
    maroon2maroon2rgb(238, 48, 167)#EE30A7
    maroon3maroon3rgb(205, 41, 144)#CD2990
    maroon4maroon4rgb(139, 28, 98)#8B1C62
    MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
    VioletRedVioletRedrgb(208, 32, 144)#D02090
    orchid2orchid2rgb(238, 122, 233)#EE7AE9
    orchidorchidrgb(218, 112, 214)#DA70D6
    orchid1orchid1rgb(255, 131, 250)#FF83FA
    orchid3orchid3rgb(205, 105, 201)#CD69C9
    orchid4orchid4rgb(139, 71, 137)#8B4789
    thistle1thistle1rgb(255, 225, 255)#FFE1FF
    thistle2thistle2rgb(238, 210, 238)#EED2EE
    plum1plum1rgb(255, 187, 255)#FFBBFF
    plum2plum2rgb(238, 174, 238)#EEAEEE
    thistlethistlergb(216, 191, 216)#D8BFD8
    thistle3thistle3rgb(205, 181, 205)#CDB5CD
    plumplumrgb(221, 160, 221)#DDA0DD
    violetvioletrgb(238, 130, 238)#EE82EE
    plum3plum3rgb(205, 150, 205)#CD96CD
    thistle4thistle4rgb(139, 123, 139)#8B7B8B
    fuchsiafuchsiargb(255, 0, 255)#FF00FF
    magentamagentargb(255, 0, 255)#FF00FF
    magenta1magenta1rgb(255, 0, 255)#FF00FF
    plum4plum4rgb(139, 102, 139)#8B668B
    magenta2magenta2rgb(238, 0, 238)#EE00EE
    magenta3magenta3rgb(205, 0, 205)#CD00CD
    DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
    magenta4magenta4rgb(139, 0, 139)#8B008B
    purplepurplergb(128, 0, 128)#800080
    MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
    MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
    MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
    MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
    MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
    DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
    DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
    DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
    DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
    DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
    DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
    purplepurplergb(160, 32, 240)#A020F0
    indigoindigorgb( 75, 0, 130)#4B0082
    BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
    purple2purple2rgb(145, 44, 238)#912CEE
    purple3purple3rgb(125, 38, 205)#7D26CD
    purple4purple4rgb( 85, 26, 139)#551A8B
    purple1purple1rgb(155, 48, 255)#9B30FF
    MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
    MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
    MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
    MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
    MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
    DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
    LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
    MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
    SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
    SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
    SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
    SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
    SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
    GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
    lavenderlavenderrgb(230, 230, 250)#E6E6FA
    bluebluergb( 0, 0, 255)#0000FF
    blue1blue1rgb( 0, 0, 255)#0000FF
    blue2blue2rgb( 0, 0, 238)#0000EE
    blue3blue3rgb( 0, 0, 205)#0000CD
    MediumBlueMediumBluergb( 0, 0, 205)#0000CD
    blue4blue4rgb( 0, 0, 139)#00008B
    DarkBlueDarkBluergb( 0, 0, 139)#00008B
    MidnightBlueMidnightBluergb( 25, 25, 112)#191970
    navynavyrgb( 0, 0, 128)#000080
    NavyBlueNavyBluergb( 0, 0, 128)#000080
    RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
    RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
    RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
    RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
    RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
    CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
    LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
    LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
    LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
    LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
    LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
    SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
    SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
    SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
    SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
    LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
    LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
    SlateGraySlateGrayrgb(112, 128, 144)#708090
    SlateGreySlateGreyrgb(112, 128, 144)#708090
    DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
    DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
    DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
    DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
    DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
    AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
    SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
    SteelBlueSteelBluergb( 70, 130, 180)#4682B4
    SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
    SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
    SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
    SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
    SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
    SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
    SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
    LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
    LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
    LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
    LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
    LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
    SkyBlueSkyBluergb(135, 206, 235)#87CEEB
    LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
    DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
    DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
    DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
    DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
    DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
    LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
    LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
    LightBlueLightBluergb(173, 216, 230)#ADD8E6
    LightBlue4LightBlue4rgb(104, 131, 139)#68838B
    PowderBluePowderBluergb(176, 224, 230)#B0E0E6
    CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
    CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
    CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
    CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
    turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
    turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
    turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
    turquoise4turquoise4rgb( 0, 134, 139)#00868B
    cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
    CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
    DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
    azureazurergb(240, 255, 255)#F0FFFF
    azure1azure1rgb(240, 255, 255)#F0FFFF
    LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
    LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
    azure2azure2rgb(224, 238, 238)#E0EEEE
    LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
    PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
    PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
    PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
    DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
    azure3azure3rgb(193, 205, 205)#C1CDCD
    LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
    DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
    PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
    DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
    azure4azure4rgb(131, 139, 139)#838B8B
    LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
    aquaaquargb( 0, 255, 255)#00FFFF
    cyancyanrgb( 0, 255, 255)#00FFFF
    cyan1cyan1rgb( 0, 255, 255)#00FFFF
    PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
    cyan2cyan2rgb( 0, 238, 238)#00EEEE
    DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
    cyan3cyan3rgb( 0, 205, 205)#00CDCD
    cyan4cyan4rgb( 0, 139, 139)#008B8B
    DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
    tealtealrgb( 0, 128, 128)#008080
    DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
    DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
    MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
    LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
    turquoiseturquoisergb( 64, 224, 208)#40E0D0
    aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
    aquamarineaquamarinergb(127, 255, 212)#7FFFD4
    aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
    aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
    aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
    MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
    MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
    MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
    SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
    SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
    SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
    SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
    SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
    MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
    SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
    SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
    SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
    SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
    SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
    MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
    honeydewhoneydewrgb(240, 255, 240)#F0FFF0
    honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
    honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
    DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
    DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
    PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
    PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
    honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
    LightGreenLightGreenrgb(144, 238, 144)#90EE90
    PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
    DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
    DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
    PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
    honeydew4honeydew4rgb(131, 139, 131)#838B83
    green1green1rgb( 0, 255, 0)#00FF00
    limelimergb( 0, 255, 0)#00FF00
    LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
    DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
    green2green2rgb( 0, 238, 0)#00EE00
    PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
    green3green3rgb( 0, 205, 0)#00CD00
    ForestGreenForestGreenrgb( 34, 139, 34)#228B22
    green4green4rgb( 0, 139, 0)#008B00
    greengreenrgb( 0, 128, 0)#008000
    DarkGreenDarkGreenrgb( 0, 100, 0)#006400
    LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
    chartreusechartreusergb(127, 255, 0)#7FFF00
    chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
    chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
    chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
    chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
    GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
    DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
    DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
    DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
    DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
    DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
    OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
    OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
    OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
    OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
    YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
    OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
    ivoryivoryrgb(255, 255, 240)#FFFFF0
    ivory1ivory1rgb(255, 255, 240)#FFFFF0
    LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
    LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
    beigebeigergb(245, 245, 220)#F5F5DC
    ivory2ivory2rgb(238, 238, 224)#EEEEE0
    LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
    LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
    ivory3ivory3rgb(205, 205, 193)#CDCDC1
    LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
    ivory4ivory4rgb(139, 139, 131)#8B8B83
    LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
    yellowyellowrgb(255, 255, 0)#FFFF00
    yellow1yellow1rgb(255, 255, 0)#FFFF00
    yellow2yellow2rgb(238, 238, 0)#EEEE00
    yellow3yellow3rgb(205, 205, 0)#CDCD00
    yellow4yellow4rgb(139, 139, 0)#8B8B00
    oliveolivergb(128, 128, 0)#808000
    DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
    khaki2khaki2rgb(238, 230, 133)#EEE685
    LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
    khaki1khaki1rgb(255, 246, 143)#FFF68F
    khaki3khaki3rgb(205, 198, 115)#CDC673
    khaki4khaki4rgb(139, 134, 78)#8B864E
    PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
    LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
    LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
    khakikhakirgb(240, 230, 140)#F0E68C
    LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
    LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
    MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
    cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
    goldgoldrgb(255, 215, 0)#FFD700
    gold1gold1rgb(255, 215, 0)#FFD700
    gold2gold2rgb(238, 201, 0)#EEC900
    gold3gold3rgb(205, 173, 0)#CDAD00
    gold4gold4rgb(139, 117, 0)#8B7500
    LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
    LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
    LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
    LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
    LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
    cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
    cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
    cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
    cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
    goldenrodgoldenrodrgb(218, 165, 32)#DAA520
    goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
    goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
    goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
    goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
    DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
    DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
    DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
    DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
    DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
    FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
    wheat2wheat2rgb(238, 216, 174)#EED8AE
    OldLaceOldLacergb(253, 245, 230)#FDF5E6
    wheatwheatrgb(245, 222, 179)#F5DEB3
    wheat1wheat1rgb(255, 231, 186)#FFE7BA
    wheat3wheat3rgb(205, 186, 150)#CDBA96
    orangeorangergb(255, 165, 0)#FFA500
    orange1orange1rgb(255, 165, 0)#FFA500
    orange2orange2rgb(238, 154, 0)#EE9A00
    orange3orange3rgb(205, 133, 0)#CD8500
    orange4orange4rgb(139, 90, 0)#8B5A00
    wheat4wheat4rgb(139, 126, 102)#8B7E66
    moccasinmoccasinrgb(255, 228, 181)#FFE4B5
    PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
    NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
    BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
    NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
    NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
    NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
    NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
    AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
    AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
    tantanrgb(210, 180, 140)#D2B48C
    bisque4bisque4rgb(139, 125, 107)#8B7D6B
    burlywoodburlywoodrgb(222, 184, 135)#DEB887
    AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
    burlywood1burlywood1rgb(255, 211, 155)#FFD39B
    burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
    burlywood2burlywood2rgb(238, 197, 145)#EEC591
    AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
    burlywood4burlywood4rgb(139, 115, 85)#8B7355
    AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
    DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
    bisque2bisque2rgb(238, 213, 183)#EED5B7
    bisquebisquergb(255, 228, 196)#FFE4C4
    bisque1bisque1rgb(255, 228, 196)#FFE4C4
    bisque3bisque3rgb(205, 183, 158)#CDB79E
    DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
    linenlinenrgb(250, 240, 230)#FAF0E6
    DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
    DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
    DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
    peruperurgb(205, 133, 63)#CD853F
    tan1tan1rgb(255, 165, 79)#FFA54F
    tan2tan2rgb(238, 154, 73)#EE9A49
    tan3tan3rgb(205, 133, 63)#CD853F
    tan4tan4rgb(139, 90, 43)#8B5A2B
    PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
    PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
    PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
    PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
    PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
    SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
    seashell4seashell4rgb(139, 134, 130)#8B8682
    seashell2seashell2rgb(238, 229, 222)#EEE5DE
    seashell3seashell3rgb(205, 197, 191)#CDC5BF
    chocolatechocolatergb(210, 105, 30)#D2691E
    chocolate1chocolate1rgb(255, 127, 36)#FF7F24
    chocolate2chocolate2rgb(238, 118, 33)#EE7621
    chocolate3chocolate3rgb(205, 102, 29)#CD661D
    chocolate4chocolate4rgb(139, 69, 19)#8B4513
    SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
    seashellseashellrgb(255, 245, 238)#FFF5EE
    seashell1seashell1rgb(255, 245, 238)#FFF5EE
    sienna4sienna4rgb(139, 71, 38)#8B4726
    siennasiennargb(160, 82, 45)#A0522D
    sienna1sienna1rgb(255, 130, 71)#FF8247
    sienna2sienna2rgb(238, 121, 66)#EE7942
    sienna3sienna3rgb(205, 104, 57)#CD6839
    LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
    LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
    LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
    LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
    LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
    coralcoralrgb(255, 127, 80)#FF7F50
    OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
    OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
    OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
    OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
    OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
    DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
    salmon1salmon1rgb(255, 140, 105)#FF8C69
    salmon2salmon2rgb(238, 130, 98)#EE8262
    salmon3salmon3rgb(205, 112, 84)#CD7054
    salmon4salmon4rgb(139, 76, 57)#8B4C39
    coral1coral1rgb(255, 114, 86)#FF7256
    coral2coral2rgb(238, 106, 80)#EE6A50
    coral3coral3rgb(205, 91, 69)#CD5B45
    coral4coral4rgb(139, 62, 47)#8B3E2F
    tomato4tomato4rgb(139, 54, 38)#8B3626
    tomatotomatorgb(255, 99, 71)#FF6347
    tomato1tomato1rgb(255, 99, 71)#FF6347
    tomato2tomato2rgb(238, 92, 66)#EE5C42
    tomato3tomato3rgb(205, 79, 57)#CD4F39
    MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
    MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
    MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
    MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
    salmonsalmonrgb(250, 128, 114)#FA8072
    MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
    whitewhitergb(255, 255, 255)#FFFFFF
    gray100gray100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    grey100grey100rgb(255, 255, 255)#FFFFFF
    gray99gray99rgb(252, 252, 252)#FCFCFC
    grey99grey99rgb(252, 252, 252)#FCFCFC
    gray98gray98rgb(250, 250, 250)#FAFAFA
    grey98grey98rgb(250, 250, 250)#FAFAFA
    gray97gray97rgb(247, 247, 247)#F7F7F7
    grey97grey97rgb(247, 247, 247)#F7F7F7
    gray96gray96rgb(245, 245, 245)#F5F5F5
    grey96grey96rgb(245, 245, 245)#F5F5F5
    WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
    gray95gray95rgb(242, 242, 242)#F2F2F2
    grey95grey95rgb(242, 242, 242)#F2F2F2
    gray94gray94rgb(240, 240, 240)#F0F0F0
    grey94grey94rgb(240, 240, 240)#F0F0F0
    gray93gray93rgb(237, 237, 237)#EDEDED
    grey93grey93rgb(237, 237, 237)#EDEDED
    gray92gray92rgb(235, 235, 235)#EBEBEB
    grey92grey92rgb(235, 235, 235)#EBEBEB
    gray91gray91rgb(232, 232, 232)#E8E8E8
    grey91grey91rgb(232, 232, 232)#E8E8E8
    gray90gray90rgb(229, 229, 229)#E5E5E5
    grey90grey90rgb(229, 229, 229)#E5E5E5
    gray89gray89rgb(227, 227, 227)#E3E3E3
    grey89grey89rgb(227, 227, 227)#E3E3E3
    gray88gray88rgb(224, 224, 224)#E0E0E0
    grey88grey88rgb(224, 224, 224)#E0E0E0
    gray87gray87rgb(222, 222, 222)#DEDEDE
    grey87grey87rgb(222, 222, 222)#DEDEDE
    gainsborogainsbororgb(220, 220, 220)#DCDCDC
    gray86gray86rgb(219, 219, 219)#DBDBDB
    grey86grey86rgb(219, 219, 219)#DBDBDB
    gray85gray85rgb(217, 217, 217)#D9D9D9
    grey85grey85rgb(217, 217, 217)#D9D9D9
    gray84gray84rgb(214, 214, 214)#D6D6D6
    grey84grey84rgb(214, 214, 214)#D6D6D6
    gray83gray83rgb(212, 212, 212)#D4D4D4
    grey83grey83rgb(212, 212, 212)#D4D4D4
    LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
    LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
    gray82gray82rgb(209, 209, 209)#D1D1D1
    grey82grey82rgb(209, 209, 209)#D1D1D1
    gray81gray81rgb(207, 207, 207)#CFCFCF
    grey81grey81rgb(207, 207, 207)#CFCFCF
    gray80gray80rgb(204, 204, 204)#CCCCCC
    grey80grey80rgb(204, 204, 204)#CCCCCC
    gray79gray79rgb(201, 201, 201)#C9C9C9
    grey79grey79rgb(201, 201, 201)#C9C9C9
    gray78gray78rgb(199, 199, 199)#C7C7C7
    grey78grey78rgb(199, 199, 199)#C7C7C7
    gray77gray77rgb(196, 196, 196)#C4C4C4
    grey77grey77rgb(196, 196, 196)#C4C4C4
    gray76gray76rgb(194, 194, 194)#C2C2C2
    grey76grey76rgb(194, 194, 194)#C2C2C2
    silversilverrgb(192, 192, 192)#C0C0C0
    gray75gray75rgb(191, 191, 191)#BFBFBF
    grey75grey75rgb(191, 191, 191)#BFBFBF
    gray74gray74rgb(189, 189, 189)#BDBDBD
    grey74grey74rgb(189, 189, 189)#BDBDBD
    gray73gray73rgb(186, 186, 186)#BABABA
    grey73grey73rgb(186, 186, 186)#BABABA
    gray72gray72rgb(184, 184, 184)#B8B8B8
    grey72grey72rgb(184, 184, 184)#B8B8B8
    gray71gray71rgb(181, 181, 181)#B5B5B5
    grey71grey71rgb(181, 181, 181)#B5B5B5
    gray70gray70rgb(179, 179, 179)#B3B3B3
    grey70grey70rgb(179, 179, 179)#B3B3B3
    gray69gray69rgb(176, 176, 176)#B0B0B0
    grey69grey69rgb(176, 176, 176)#B0B0B0
    gray68gray68rgb(173, 173, 173)#ADADAD
    grey68grey68rgb(173, 173, 173)#ADADAD
    gray67gray67rgb(171, 171, 171)#ABABAB
    grey67grey67rgb(171, 171, 171)#ABABAB
    DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
    DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
    gray66gray66rgb(168, 168, 168)#A8A8A8
    grey66grey66rgb(168, 168, 168)#A8A8A8
    gray65gray65rgb(166, 166, 166)#A6A6A6
    grey65grey65rgb(166, 166, 166)#A6A6A6
    gray64gray64rgb(163, 163, 163)#A3A3A3
    grey64grey64rgb(163, 163, 163)#A3A3A3
    gray63gray63rgb(161, 161, 161)#A1A1A1
    grey63grey63rgb(161, 161, 161)#A1A1A1
    gray62gray62rgb(158, 158, 158)#9E9E9E
    grey62grey62rgb(158, 158, 158)#9E9E9E
    gray61gray61rgb(156, 156, 156)#9C9C9C
    grey61grey61rgb(156, 156, 156)#9C9C9C
    gray60gray60rgb(153, 153, 153)#999999
    grey60grey60rgb(153, 153, 153)#999999
    gray59gray59rgb(150, 150, 150)#969696
    grey59grey59rgb(150, 150, 150)#969696
    gray58gray58rgb(148, 148, 148)#949494
    grey58grey58rgb(148, 148, 148)#949494
    gray57gray57rgb(145, 145, 145)#919191
    grey57grey57rgb(145, 145, 145)#919191
    gray56gray56rgb(143, 143, 143)#8F8F8F
    grey56grey56rgb(143, 143, 143)#8F8F8F
    gray55gray55rgb(140, 140, 140)#8C8C8C
    grey55grey55rgb(140, 140, 140)#8C8C8C
    gray54gray54rgb(138, 138, 138)#8A8A8A
    grey54grey54rgb(138, 138, 138)#8A8A8A
    gray53gray53rgb(135, 135, 135)#878787
    grey53grey53rgb(135, 135, 135)#878787
    gray52gray52rgb(133, 133, 133)#858585
    grey52grey52rgb(133, 133, 133)#858585
    gray51gray51rgb(130, 130, 130)#828282
    grey51grey51rgb(130, 130, 130)#828282
    fractalfractalrgb(128, 128, 128)#808080
    gray50gray50rgb(127, 127, 127)#7F7F7F
    grey50grey50rgb(127, 127, 127)#7F7F7F
    graygrayrgb(126, 126, 126)#7E7E7E
    gray49gray49rgb(125, 125, 125)#7D7D7D
    grey49grey49rgb(125, 125, 125)#7D7D7D
    gray48gray48rgb(122, 122, 122)#7A7A7A
    grey48grey48rgb(122, 122, 122)#7A7A7A
    gray47gray47rgb(120, 120, 120)#787878
    grey47grey47rgb(120, 120, 120)#787878
    gray46gray46rgb(117, 117, 117)#757575
    grey46grey46rgb(117, 117, 117)#757575
    gray45gray45rgb(115, 115, 115)#737373
    grey45grey45rgb(115, 115, 115)#737373
    gray44gray44rgb(112, 112, 112)#707070
    grey44grey44rgb(112, 112, 112)#707070
    gray43gray43rgb(110, 110, 110)#6E6E6E
    grey43grey43rgb(110, 110, 110)#6E6E6E
    gray42gray42rgb(107, 107, 107)#6B6B6B
    grey42grey42rgb(107, 107, 107)#6B6B6B
    DimGrayDimGrayrgb(105, 105, 105)#696969
    DimGreyDimGreyrgb(105, 105, 105)#696969
    gray41gray41rgb(105, 105, 105)#696969
    grey41grey41rgb(105, 105, 105)#696969
    gray40gray40rgb(102, 102, 102)#666666
    grey40grey40rgb(102, 102, 102)#666666
    gray39gray39rgb( 99, 99, 99)#636363
    grey39grey39rgb( 99, 99, 99)#636363
    gray38gray38rgb( 97, 97, 97)#616161
    grey38grey38rgb( 97, 97, 97)#616161
    gray37gray37rgb( 94, 94, 94)#5E5E5E
    grey37grey37rgb( 94, 94, 94)#5E5E5E
    gray36gray36rgb( 92, 92, 92)#5C5C5C
    grey36grey36rgb( 92, 92, 92)#5C5C5C
    gray35gray35rgb( 89, 89, 89)#595959
    grey35grey35rgb( 89, 89, 89)#595959
    gray34gray34rgb( 87, 87, 87)#575757
    grey34grey34rgb( 87, 87, 87)#575757
    gray33gray33rgb( 84, 84, 84)#545454
    grey33grey33rgb( 84, 84, 84)#545454
    gray32gray32rgb( 82, 82, 82)#525252
    grey32grey32rgb( 82, 82, 82)#525252
    gray31gray31rgb( 79, 79, 79)#4F4F4F
    grey31grey31rgb( 79, 79, 79)#4F4F4F
    gray30gray30rgb( 77, 77, 77)#4D4D4D
    grey30grey30rgb( 77, 77, 77)#4D4D4D
    gray29gray29rgb( 74, 74, 74)#4A4A4A
    grey29grey29rgb( 74, 74, 74)#4A4A4A
    gray28gray28rgb( 71, 71, 71)#474747
    grey28grey28rgb( 71, 71, 71)#474747
    gray27gray27rgb( 69, 69, 69)#454545
    grey27grey27rgb( 69, 69, 69)#454545
    gray26gray26rgb( 66, 66, 66)#424242
    grey26grey26rgb( 66, 66, 66)#424242
    gray25gray25rgb( 64, 64, 64)#404040
    grey25grey25rgb( 64, 64, 64)#404040
    gray24gray24rgb( 61, 61, 61)#3D3D3D
    grey24grey24rgb( 61, 61, 61)#3D3D3D
    gray23gray23rgb( 59, 59, 59)#3B3B3B
    grey23grey23rgb( 59, 59, 59)#3B3B3B
    gray22gray22rgb( 56, 56, 56)#383838
    grey22grey22rgb( 56, 56, 56)#383838
    gray21gray21rgb( 54, 54, 54)#363636
    grey21grey21rgb( 54, 54, 54)#363636
    gray20gray20rgb( 51, 51, 51)#333333
    grey20grey20rgb( 51, 51, 51)#333333
    gray19gray19rgb( 48, 48, 48)#303030
    grey19grey19rgb( 48, 48, 48)#303030
    gray18gray18rgb( 46, 46, 46)#2E2E2E
    grey18grey18rgb( 46, 46, 46)#2E2E2E
    gray17gray17rgb( 43, 43, 43)#2B2B2B
    grey17grey17rgb( 43, 43, 43)#2B2B2B
    gray16gray16rgb( 41, 41, 41)#292929
    grey16grey16rgb( 41, 41, 41)#292929
    gray15gray15rgb( 38, 38, 38)#262626
    grey15grey15rgb( 38, 38, 38)#262626
    gray14gray14rgb( 36, 36, 36)#242424
    grey14grey14rgb( 36, 36, 36)#242424
    gray13gray13rgb( 33, 33, 33)#212121
    grey13grey13rgb( 33, 33, 33)#212121
    gray12gray12rgb( 31, 31, 31)#1F1F1F
    grey12grey12rgb( 31, 31, 31)#1F1F1F
    gray11gray11rgb( 28, 28, 28)#1C1C1C
    grey11grey11rgb( 28, 28, 28)#1C1C1C
    gray10gray10rgb( 26, 26, 26)#1A1A1A
    grey10grey10rgb( 26, 26, 26)#1A1A1A
    gray9gray9rgb( 23, 23, 23)#171717
    grey9grey9rgb( 23, 23, 23)#171717
    gray8gray8rgb( 20, 20, 20)#141414
    grey8grey8rgb( 20, 20, 20)#141414
    gray7gray7rgb( 18, 18, 18)#121212
    grey7grey7rgb( 18, 18, 18)#121212
    gray6gray6rgb( 15, 15, 15)#0F0F0F
    grey6grey6rgb( 15, 15, 15)#0F0F0F
    gray5gray5rgb( 13, 13, 13)#0D0D0D
    grey5grey5rgb( 13, 13, 13)#0D0D0D
    gray4gray4rgb( 10, 10, 10)#0A0A0A
    grey4grey4rgb( 10, 10, 10)#0A0A0A
    gray3gray3rgb( 8, 8, 8)#080808
    grey3grey3rgb( 8, 8, 8)#080808
    gray2gray2rgb( 5, 5, 5)#050505
    grey2grey2rgb( 5, 5, 5)#050505
    gray1gray1rgb( 3, 3, 3)#030303
    grey1grey1rgb( 3, 3, 3)#030303
    blackblackrgb( 0, 0, 0)#000000
    gray0gray0rgb( 0, 0, 0)#000000
    grey0grey0rgb( 0, 0, 0)#000000
    opaqueopaquergb( 0, 0, 0)#000000
    nonenonergba( 0, 0, 0, 0.0)#00000000
    transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
    + +
    + +
    + + 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 @@ + + + + +
    +
    +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
    +
    + +
    +WHERE THE COLORNAMES WILL GO +
    + +
    CLICK TO SHOW HEXES
    +
    CLICK TO SHOW INFO
    + + + + + + + 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 @@ + + + + +
    +
    +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
    +
    + +
    +WHERE THE COLORNAMES WILL GO +
    + +
    CLICK TO SHOW HEXES
    +
    CLICK TO SHOW INFO
    + + + + 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 = "
    "+"
    "+"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
    "+"
    "+"
    WHERE THE COLORNAMES WILL GO
    "+""+"" + + +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 @@ + + + + + + +
    +
    +
    +
    +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
    +
    +
    + +
    +CLICK TO CHOOSE THE COLOR +
    + +
    + +OPTIONS +
    CLICK TO USE HEX KEYS
    +
    +
    CLICK TO TOGGLE PALATE INFO
    +
    +
    CLICK TO TOGGLE BACKGROUNDS
    +
    +
    +
    YOU WILL CHOOSE:
    +
    +to choose transparent as a color, click HERE +
    +
    + + + + + + 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("""\n\n +") +w.write("\n
    \n") +for x in range(674): + w.write("
    \n"+colornames[x]+"
    \n") +w.write("
    \n") +w.write("
    WHERE THE COLORNAMES WILL GO
    ") +w.write("") +w.write("\n") +w.write("\n") +w.write("\n\n") 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 @@ + + + + + + +
    +
    +
    +
    +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
    +
    +
    + +
    +CLICK TO CHOOSE THE COLOR +
    + +
    + +OPTIONS +
    CLICK TO USE HEX KEYS
    +
    +
    CLICK TO TOGGLE PALATE INFO
    +
    +
    CLICK TO TOGGLE BACKGROUNDS
    +
    +
    +
    YOU WILL CHOOSE:
    +
    +to choose transparent as a color, click HERE +
    +
    + + + + + + 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 @@ + + + + +
    +
    +
    +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
    +
    + +
    +CLICK TO CHOOSE THE COLOR +
    + +
    + +OPTIONS +
    CLICK TO USE HEX KEYS
    +
    +
    CLICK TO TOGGLE PALATE INFO
    +
    +
    CLICK TO TOGGLE BACKGROUNDS
    +
    +
    +
    YOU WILL CHOOSE:
    +
    +to choose transparent as a color, click HERE +
    +
    + + + + + + diff --git a/frontend/imgrid/colors/minoan.gif b/frontend/imgrid/colors/minoan.gif new file mode 100755 index 0000000..4ceb804 Binary files /dev/null and b/frontend/imgrid/colors/minoan.gif differ 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 @@ + + + + +
    +
    +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
    +
    + +
    +WHERE THE COLORNAMES WILL GO +
    + +
    CLICK TO SHOW HEXES
    +
    CLICK TO SHOW INFO
    + + + + + + 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 @@ + + + + + + + + + + +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + diff --git a/frontend/imgrid/colors/vase.gif b/frontend/imgrid/colors/vase.gif new file mode 100755 index 0000000..dc1c104 Binary files /dev/null and b/frontend/imgrid/colors/vase.gif differ diff --git a/frontend/imgrid/colors/vase.png b/frontend/imgrid/colors/vase.png new file mode 100755 index 0000000..153e72b Binary files /dev/null and b/frontend/imgrid/colors/vase.png differ diff --git a/frontend/imgrid/colors/vaseshim.png b/frontend/imgrid/colors/vaseshim.png new file mode 100755 index 0000000..7dbd352 Binary files /dev/null and b/frontend/imgrid/colors/vaseshim.png differ diff --git a/frontend/imgrid/colors/whiteshim.png b/frontend/imgrid/colors/whiteshim.png new file mode 100755 index 0000000..6b58334 Binary files /dev/null and b/frontend/imgrid/colors/whiteshim.png differ 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 new file mode 100755 index 0000000..5b5dab2 Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png differ 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 new file mode 100755 index 0000000..ac8b229 Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png differ 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 new file mode 100755 index 0000000..ad3d634 Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png differ 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 new file mode 100755 index 0000000..42ccba2 Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png differ 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 new file mode 100755 index 0000000..1d43b47 Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png differ 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 new file mode 100755 index 0000000..86c2baa Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png differ 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 new file mode 100755 index 0000000..4443fdc Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png differ 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 new file mode 100755 index 0000000..7c9fa6c Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_222222_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_222222_256x240.png new file mode 100755 index 0000000..b273ff1 Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-icons_222222_256x240.png differ diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_2e83ff_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_2e83ff_256x240.png new file mode 100755 index 0000000..09d1cdc Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-icons_2e83ff_256x240.png differ diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_454545_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_454545_256x240.png new file mode 100755 index 0000000..59bd45b Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-icons_454545_256x240.png differ diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_888888_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_888888_256x240.png new file mode 100755 index 0000000..6d02426 Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-icons_888888_256x240.png differ diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_cd0a0a_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_cd0a0a_256x240.png new file mode 100755 index 0000000..2ab019b Binary files /dev/null and b/frontend/imgrid/css/smoothness/images/ui-icons_cd0a0a_256x240.png differ 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 new file mode 100755 index 0000000..0424a46 Binary files /dev/null and b/frontend/imgrid/dist/3dmap.jar differ 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 @@ + + + + 3D Map + ScannerJammer + + 3D Map Viewer + JOGL Applet that can generate a 3D landscape based on 2 images: texture and heightmap. + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + GlueGen Runtime v2 + JogAmp Community + + GlueGen Runtime Library + Run-time support classes and native code for applications and libraries built using the GlueGen tool. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar b/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar new file mode 100755 index 0000000..53e0742 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar differ 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 new file mode 100755 index 0000000..eaf6bad Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-amd64.jar differ 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 new file mode 100755 index 0000000..6c21412 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-i586.jar differ 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 new file mode 100755 index 0000000..2144ebf Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-ppc.jar differ 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 new file mode 100755 index 0000000..8a5efb4 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-universal.jar differ 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 new file mode 100755 index 0000000..1ad7faa Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-amd64.jar differ 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 new file mode 100755 index 0000000..dbadb72 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-i586.jar differ 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 new file mode 100755 index 0000000..02367c7 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparc.jar differ 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 new file mode 100755 index 0000000..da0ff3a Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparcv9.jar differ 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 new file mode 100755 index 0000000..e9a3ffe Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-amd64.jar differ 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 new file mode 100755 index 0000000..bb00056 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-i586.jar differ diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar new file mode 100755 index 0000000..c995b22 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar differ 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 new file mode 100755 index 0000000..64d95a0 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-amd64.jar differ 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 new file mode 100755 index 0000000..9370828 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-i586.jar differ 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 new file mode 100755 index 0000000..9495e36 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-ppc.jar differ 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 new file mode 100755 index 0000000..f2186cb Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-universal.jar differ 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 new file mode 100755 index 0000000..cd617f9 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-amd64.jar differ 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 new file mode 100755 index 0000000..4209a9d Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-i586.jar differ 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 new file mode 100755 index 0000000..b25fdcd Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparc.jar differ 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 new file mode 100755 index 0000000..b60e31f Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparcv9.jar differ 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 new file mode 100755 index 0000000..af8b5f9 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-amd64.jar differ 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 new file mode 100755 index 0000000..81c1cdf Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-i586.jar differ diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl.jar new file mode 100755 index 0000000..ef96967 Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/jogl.jar differ diff --git a/frontend/imgrid/dist/deployment/v1/jar/testKeys b/frontend/imgrid/dist/deployment/v1/jar/testKeys new file mode 100755 index 0000000..7eb9ceb Binary files /dev/null and b/frontend/imgrid/dist/deployment/v1/jar/testKeys differ 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 @@ + + + + Java(tm) Binding to the OpenGL(r) API (ALL.AWT) + JogAmp Community + + Java Binding to the OpenGL API - 2.0.0 - ALL.AWT + Java programming language binding for the OpenGL 3D graphics API - ALL.AWT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/imgrid/dist/http/commons-codec-1.4.jar b/frontend/imgrid/dist/http/commons-codec-1.4.jar new file mode 100755 index 0000000..16cd33a Binary files /dev/null and b/frontend/imgrid/dist/http/commons-codec-1.4.jar differ diff --git a/frontend/imgrid/dist/http/commons-logging-1.1.1.jar b/frontend/imgrid/dist/http/commons-logging-1.1.1.jar new file mode 100755 index 0000000..1fe7176 Binary files /dev/null and b/frontend/imgrid/dist/http/commons-logging-1.1.1.jar differ diff --git a/frontend/imgrid/dist/http/httpclient-4.1.2.jar b/frontend/imgrid/dist/http/httpclient-4.1.2.jar new file mode 100755 index 0000000..6a61ea2 Binary files /dev/null and b/frontend/imgrid/dist/http/httpclient-4.1.2.jar differ diff --git a/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar b/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar new file mode 100755 index 0000000..713decb Binary files /dev/null and b/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar differ diff --git a/frontend/imgrid/dist/http/httpcore-4.1.2.jar b/frontend/imgrid/dist/http/httpcore-4.1.2.jar new file mode 100755 index 0000000..343e174 Binary files /dev/null and b/frontend/imgrid/dist/http/httpcore-4.1.2.jar differ diff --git a/frontend/imgrid/dist/http/httpmime-4.1.2.jar b/frontend/imgrid/dist/http/httpmime-4.1.2.jar new file mode 100755 index 0000000..cce60ef Binary files /dev/null and b/frontend/imgrid/dist/http/httpmime-4.1.2.jar differ diff --git a/frontend/imgrid/dist/http/plugin.jar b/frontend/imgrid/dist/http/plugin.jar new file mode 100755 index 0000000..ee4792a Binary files /dev/null and b/frontend/imgrid/dist/http/plugin.jar differ 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 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/imgrid/dist/temp/HeightMap.jpg b/frontend/imgrid/dist/temp/HeightMap.jpg new file mode 100755 index 0000000..ccee392 Binary files /dev/null and b/frontend/imgrid/dist/temp/HeightMap.jpg differ diff --git a/frontend/imgrid/dist/temp/Texture.jpg b/frontend/imgrid/dist/temp/Texture.jpg new file mode 100755 index 0000000..eef3866 Binary files /dev/null and b/frontend/imgrid/dist/temp/Texture.jpg differ diff --git a/frontend/imgrid/dist/testKeys b/frontend/imgrid/dist/testKeys new file mode 100755 index 0000000..7eb9ceb Binary files /dev/null and b/frontend/imgrid/dist/testKeys differ diff --git a/frontend/imgrid/dist_embedded/3DMapAllWin.jar b/frontend/imgrid/dist_embedded/3DMapAllWin.jar new file mode 100755 index 0000000..7ee9c3d Binary files /dev/null and b/frontend/imgrid/dist_embedded/3DMapAllWin.jar differ 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 @@ + + + + + + + + + + + + diff --git a/frontend/imgrid/favicon.ico b/frontend/imgrid/favicon.ico new file mode 100755 index 0000000..59b9680 Binary files /dev/null and b/frontend/imgrid/favicon.ico differ diff --git a/frontend/imgrid/greatgrids/blackplant.png b/frontend/imgrid/greatgrids/blackplant.png new file mode 100755 index 0000000..e78b547 Binary files /dev/null and b/frontend/imgrid/greatgrids/blackplant.png differ 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 @@ + + + +the difference - interactive DHTML + + + + + + + + + + + +
    +
    +
    WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED BY PEOPLE USING HTTP://ASDF.US/IMGRID
    +
    +
    +
    + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Pepper + +
    +
    hello
    + + + + + + diff --git a/frontend/imgrid/greatgrids/facebookimage.jpg b/frontend/imgrid/greatgrids/facebookimage.jpg new file mode 100755 index 0000000..175f825 Binary files /dev/null and b/frontend/imgrid/greatgrids/facebookimage.jpg differ diff --git a/frontend/imgrid/greatgrids/facebookimage.png b/frontend/imgrid/greatgrids/facebookimage.png new file mode 100755 index 0000000..4d75bc0 Binary files /dev/null and b/frontend/imgrid/greatgrids/facebookimage.png differ 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 @@ + + + +the difference - interactive DHTML + + + + + + + + + + + +
    +
    +BLAH BLAH BLAH +
    +
    +
    +
    +
    +
    WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED USING HTTP://ASDF.US/IMGRID
    +
    +
    +
    + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Pepper + +
    +
    CLICK TO ENLARGE
    + + + + + + diff --git a/frontend/imgrid/greatgrids/greatgrids.ico b/frontend/imgrid/greatgrids/greatgrids.ico new file mode 100755 index 0000000..02b95bb Binary files /dev/null and b/frontend/imgrid/greatgrids/greatgrids.ico differ diff --git a/frontend/imgrid/greatgrids/grids.ico b/frontend/imgrid/greatgrids/grids.ico new file mode 100755 index 0000000..e84f586 Binary files /dev/null and b/frontend/imgrid/greatgrids/grids.ico differ diff --git a/frontend/imgrid/greatgrids/grids.png b/frontend/imgrid/greatgrids/grids.png new file mode 100755 index 0000000..7295042 Binary files /dev/null and b/frontend/imgrid/greatgrids/grids.png differ 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 @@ + + + +the difference - interactive DHTML + + + + + + + + + + +
    +
    +
    WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED BY PEOPLE USING HTTP://ASDF.US/IMGRID
    +
    +
    +
    + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Pepper + +
    + + + + + + + + diff --git a/frontend/imgrid/greatgrids/images/LaL1S.jpg b/frontend/imgrid/greatgrids/images/LaL1S.jpg new file mode 100755 index 0000000..2eec5e3 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/LaL1S.jpg differ diff --git a/frontend/imgrid/greatgrids/images/gg1.png b/frontend/imgrid/greatgrids/images/gg1.png new file mode 100755 index 0000000..9d290b6 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/gg1.png differ diff --git a/frontend/imgrid/greatgrids/images/gg2.png b/frontend/imgrid/greatgrids/images/gg2.png new file mode 100755 index 0000000..92bf7b9 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/gg2.png differ diff --git a/frontend/imgrid/greatgrids/images/gg3.png b/frontend/imgrid/greatgrids/images/gg3.png new file mode 100755 index 0000000..37c3a14 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/gg3.png differ diff --git a/frontend/imgrid/greatgrids/images/gg4.png b/frontend/imgrid/greatgrids/images/gg4.png new file mode 100755 index 0000000..dedae31 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/gg4.png differ diff --git a/frontend/imgrid/greatgrids/images/gg5.png b/frontend/imgrid/greatgrids/images/gg5.png new file mode 100755 index 0000000..1579292 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/gg5.png differ diff --git a/frontend/imgrid/greatgrids/images/gg6.png b/frontend/imgrid/greatgrids/images/gg6.png new file mode 100755 index 0000000..77e69f3 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/gg6.png differ diff --git a/frontend/imgrid/greatgrids/images/gg7.png b/frontend/imgrid/greatgrids/images/gg7.png new file mode 100755 index 0000000..788b182 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/gg7.png differ diff --git a/frontend/imgrid/greatgrids/images/gg8.jpg b/frontend/imgrid/greatgrids/images/gg8.jpg new file mode 100755 index 0000000..2eec5e3 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/gg8.jpg differ diff --git a/frontend/imgrid/greatgrids/images/gg8.png b/frontend/imgrid/greatgrids/images/gg8.png new file mode 100755 index 0000000..df486e0 Binary files /dev/null and b/frontend/imgrid/greatgrids/images/gg8.png differ 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 @@ + + + +GREAT GRIDS GALLERY + + + + + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED USING HTTP://ASDF.US/IMGRID
    +
    +
    +
    + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Pepper + by Calla Donofrio +
    +
    + + + + + + 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 @@ + + +GREAT GRIDS GALLERY + + + + +This text is displayed if your browser does not support HTML5 Canvas. + +
    booji boy
    + + + + + + 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 @@ + + + +the difference - interactive DHTML + + + + + + + + + + + +
    +
    +BLAH BLAH BLAH + +
    +
    +
    +
    +
    WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED BY USING HTTP://ASDF.US/IMGRID
    +
    +
    +
    + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Jeremy Matthew Daly + by Pepper + +
    +
    CLICK TO ENLARGE
    + + + + + + diff --git a/frontend/imgrid/greatgrids/tinybackground.gif b/frontend/imgrid/greatgrids/tinybackground.gif new file mode 100755 index 0000000..15c7347 Binary files /dev/null and b/frontend/imgrid/greatgrids/tinybackground.gif differ diff --git a/frontend/imgrid/greatgrids/tinybackground2.gif b/frontend/imgrid/greatgrids/tinybackground2.gif new file mode 100755 index 0000000..7004d5d Binary files /dev/null and b/frontend/imgrid/greatgrids/tinybackground2.gif differ diff --git a/frontend/imgrid/img/athenafinal.gif b/frontend/imgrid/img/athenafinal.gif new file mode 100755 index 0000000..19e0d58 Binary files /dev/null and b/frontend/imgrid/img/athenafinal.gif differ diff --git a/frontend/imgrid/img/background.gif b/frontend/imgrid/img/background.gif new file mode 100755 index 0000000..ac28d8d Binary files /dev/null and b/frontend/imgrid/img/background.gif differ diff --git a/frontend/imgrid/img/blackplant.png b/frontend/imgrid/img/blackplant.png new file mode 100755 index 0000000..e78b547 Binary files /dev/null and b/frontend/imgrid/img/blackplant.png differ diff --git a/frontend/imgrid/img/blackplant2.png b/frontend/imgrid/img/blackplant2.png new file mode 100755 index 0000000..e4f8096 Binary files /dev/null and b/frontend/imgrid/img/blackplant2.png differ diff --git a/frontend/imgrid/img/blackplant3.png b/frontend/imgrid/img/blackplant3.png new file mode 100755 index 0000000..4052e9d Binary files /dev/null and b/frontend/imgrid/img/blackplant3.png differ diff --git a/frontend/imgrid/img/bros.png b/frontend/imgrid/img/bros.png new file mode 100755 index 0000000..30f48fb Binary files /dev/null and b/frontend/imgrid/img/bros.png differ diff --git a/frontend/imgrid/img/facebookimage.png b/frontend/imgrid/img/facebookimage.png new file mode 100755 index 0000000..9ba4068 Binary files /dev/null and b/frontend/imgrid/img/facebookimage.png differ diff --git a/frontend/imgrid/img/generating.gif b/frontend/imgrid/img/generating.gif new file mode 100755 index 0000000..441abe7 Binary files /dev/null and b/frontend/imgrid/img/generating.gif differ diff --git a/frontend/imgrid/img/harrisbros.png b/frontend/imgrid/img/harrisbros.png new file mode 100755 index 0000000..47366e1 Binary files /dev/null and b/frontend/imgrid/img/harrisbros.png differ diff --git a/frontend/imgrid/img/imgrid.png b/frontend/imgrid/img/imgrid.png new file mode 100755 index 0000000..cfdae05 Binary files /dev/null and b/frontend/imgrid/img/imgrid.png differ diff --git a/frontend/imgrid/img/oldathena.gif b/frontend/imgrid/img/oldathena.gif new file mode 100755 index 0000000..b05605c Binary files /dev/null and b/frontend/imgrid/img/oldathena.gif differ diff --git a/frontend/imgrid/img/test.gif b/frontend/imgrid/img/test.gif new file mode 100755 index 0000000..ebfbdeb Binary files /dev/null and b/frontend/imgrid/img/test.gif differ diff --git a/frontend/imgrid/img/thatbackground.gif b/frontend/imgrid/img/thatbackground.gif new file mode 100755 index 0000000..e52cfdc Binary files /dev/null and b/frontend/imgrid/img/thatbackground.gif differ 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 @@ + + + + + + + + + + + + + + + + + + IMGRID - stretch images from the web in 3 dimensions, draw lines and make drop shadows + + + + + + + + +
    + +
    + + +
    +
    IMGRID - stretch images from the web in 3 dimensions, draw lines and make drop shadows +
    +hit enter or click GENERATE to get your perspective-plane + + +
    + +
    +
    + + + + +
    DIMENSIONS
    +
    +
    + + + + + +
    HEIGHT PX
    WIDTHPX
     
    +
    + + + + + + + + + + +
    SWING 
    TILT 
    ROLL 
    ZOOM  (in/out)  
    + + + + +
     
    CROP WHITESPACE
     
    + +
    IMAGE FORMAT +
    +
    + + + + +
    GRID AND IMAGE
    +
    + +
    + + + +
    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
    + + + + + + + + + + + +
    GRID THICKNESS:PX
    GRID COLOR:COLOR LIST
    + + + + + + + + + + + + + + + +
    GRID OPACITY:
    GRID SPACING:
    USE ONLY VERTICAL LINES
    USE ONLY HORIZONTAL LINES
    + + + +
    GRID BACKGROUND COLOR COLOR LIST
    + + + +
    OR GRID BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + + +
    GRID-TRANSITION
    + + + + +
    DROP SHADOW
    +
    + + + + + + +
    BACKGROUND
    +
    +
    + +
    BACKGROUND COLORCOLOR LIST
    + + + +
    OR BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + +
    SKYCOLORfor the area above the horizon-lineCOLOR LIST
    + +
    + + + +
     
    USERNAME
    +
    + +
    + +
    + + +
    + +
    + + +
    + + + + +
    +
    + + + + +COPYRIGHT 2011 PEPPER + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + + + + + + + + +
    + x + + + + + + + + + + + +
    +
    + + + +

    IMGRID: A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER

    +

    USE:

    +
    +

    I. THE FLAT PLANE +II. THE 3D PLANE
    CLICK TO OPEN JAVA APPLET

    +
    +

    CHOOSE AN IMAGE SIZE: HEIGHTPXWIDTHPX

    +

    CHOOSE THE LINE THICKNESS:PX

    +

    CHOOSE A LINE COLOR:PX

    + +

    ADJUST LINE OPACITY: +

    +

    ADJUST SPACING: PX +

    +

    USE ONLY VERTICAL LINES

    +

    USE ONLY HORIZONTAL LINES

    +

    ADD A SHADOW

    +

    CHOOSE BACKGROUND OF GRID:

    +

    TRANSPARENT? (THE DEFAULT)

    +

    USE AN IMAGE?IMG URL eg:http://ww...

    +

    USE A COLOR?SEE COLOR LIST

    +

    ADJUST WITHIN THE 3D PLANE:

    +

    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...

    +

    CHOOSE A BACKGROUND COLORSEE COLOR LIST

    +

    OR USE A BACKGROUND IMAGE

    IMG URL eg:http://ww... +

    CHOOSE A SKYCOLOR

    for the area above the horizon-line +

    ADD A DITHERED-TRANSITION

    +

    SWING +

    +

    TILT +

    +

    ROLL +

    +

    ZOOM +

    +

    TRIM IT

    +

    ADJUST THE IMAGE FORMAT

    +

    ← ENTER YOUR NAME if you want

    + + +
    +
    +click generate or hit enter to get your 2D plane + +
    +
    +
    +
    COPYRIGHT 2011 PEPPER DREAMTEAMER
    + + +
    + +
    +
    + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + + + + + + + + + +

    IMGRID

    +

    A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER

    + + + +
    + + + + + + + + +
    SWING
    TILT
    ROLL
    ZOOM
    + +
    +
    + + + + + +
    3D PLANE
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    GRID THICKNESS:PX
    GRID COLOR:SEE COLOR LIST
    GRID OPACITY:
    GRID SPACING: PX
    USE ONLY VERTICAL LINES
    USE ONLY HORIZONTAL LINES
    + + + + + +
    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
    + + + + +
    DROP SHADOW
    + + + + + + + +
    GRID BACKGROUND:
    TRANSPARENT? (THE DEFAULT)
    USE AN IMAGE?IMG URL eg:http://ww...
    + +
    USE A COLOR?SEE COLOR LIST
    + + + + + + +
    DITHERED-TRANSITION
    + + + + +
    IMAGE:
    + +
    BACKGROUND COLORSEE COLOR LIST
    + + + +
    OR BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + + + + + +
    SKYCOLORfor the area above the horizon-lineSEE COLOR LIST
    HEIGHT PX
    WIDTHPX
    + + +
    TRIM WHITESPACE
    IMAGE FORMAT +
    + + + + ← ENTER YOUR NAME if you want +
    + + + + + + + + + +
    + click generate or hit enter to get your 2D plane + + +
    +
    + +
    COPYRIGHT 2011 PEPPER DREAMTEAMER
    +
    + +
    +
    + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + + + + + + + + + +

    IMGRID

    +

    A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER

    + + + +
    +
    + + + + + + + + + + +
    HEIGHTPXWIDTH  PX
    SWING  
    TILT  
    ROLL  
    ZOOM  
    + + +
    TRIM WHITESPACE
    +
    + + + + + +
    3D PLANE
    + +
    PLANE BACKGROUND COLORSEE COLOR LIST
    + + + +
    OR USE A BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + +
    DITHERED-TRANSITION
    + + + + +
    DROP SHADOW
    SKYCOLORfor the area above the horizon-lineSEE COLOR LIST
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    LINE:
    LINE THICKNESS:PX
    LINE COLOR:SEE COLOR LIST
    LINE OPACITY:
    LINE SPACING: PX
    USE ONLY VERTICAL LINES
    USE ONLY HORIZONTAL LINES
    + + + +
    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
    + + +
    + + + + + + + +
    GRID BACKGROUND:
    TRANSPARENT? (THE DEFAULT)
    USE AN IMAGE?IMG URL eg:http://ww...
    + +
    USE A COLOR?SEE COLOR LIST
    + + + +
    IMAGE FORMAT +
    + + + + ← ENTER YOUR NAME if you want +
    + + + + + + + + +
    + click generate or hit enter to get your 2D plane + + +
    +
    + +
    COPYRIGHT 2011 PEPPER DREAMTEAMER
    +
    +
    +
    + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + +
    +
    + +
    +
    +
    + + + + + \ 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 @@ + + + + + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + + + + + + + + + +
    IMGRID
    +
    3D-GRID-PLANE GENERATOR
    + + + +
    +
    3D OPTIONS
    +
    + + + + + + + + +
    SWING 
    TILT 
    ROLL 
    ZOOM 
    + +
    +
    +
    + + + + +
    GRAPHIC OPTIONS
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    GRID THICKNESS:PX  
    GRID COLOR:COLOR LIST
    GRID OPACITY:
    GRID SPACING:
    USE ONLY VERTICAL LINES
    USE ONLY HORIZONTAL LINES
    + + + + + +
    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
    + + +
    GRID BACKGROUND COLOR COLOR LIST
    + + + +
    OR GRID BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + + +
    GRID-TRANSITION
    + + + + +
    DROP SHADOW
    + + +
    + + + + + +
    IMAGE OPTIONS
    +
    + +
    BACKGROUND COLORCOLOR LIST
    + + + +
    OR BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + + + + + +
    SKYCOLORfor the area above the horizon-lineCOLOR LIST
    HEIGHT PX
    WIDTHPX
    + + +
    CROP WHITESPACE
    IMAGE FORMAT +
    +
    + + + +
    USERNAME
    +
    + + + + + + + + + +
    + click generate or hit enter to get your 2D plane + + +
    +
    +
    +
    + + + + +
    COPYRIGHT 2011 PEPPER DREAMTEAMER
    +
    + +
    +
    + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + + + + + + +
    IMGRID
    +
    3D-GRID-PLANE GENERATOR
    + +
    +
    3D OPTIONS
    +
    + + + + + + + + +
    SWING 
    TILT 
    ROLL 
    ZOOM 
    + + + +
     
    CROP WHITESPACE
    +
    +
    + + + +
    GRAPHIC OPTIONS  
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    GRID THICKNESS:PX  
    GRID COLOR:COLOR LIST
    GRID OPACITY:
    GRID SPACING:
    USE ONLY VERTICAL LINES
    USE ONLY HORIZONTAL LINES
    + + + + + +
    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
    + + +
    GRID BACKGROUND COLOR COLOR LIST
    + + + +
    OR GRID BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + + +
    GRID-TRANSITION
    + + + + +
    DROP SHADOW
    + + +
    + + + + + +
    IMAGE OPTIONS  
    +
    +   + +
    BACKGROUND COLOR    COLOR LIST
    + + + +
    OR BACKGROUND IMAGE  IMG URL eg:http://ww...
    + + + + + + + + +
    SKYCOLOR    for the area above the horizon-line  COLOR LIST
    HEIGHT PX
    WIDTHPX
    + +
    IMAGE FORMAT +
    +
    + + + +
    USERNAME   
    +
    + + + + + +
    + click generate or hit enter to get your 2D plane + + +
    +
    +
    +
    + + + + + + + + + + + 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 = '' + $("#output-cmd").html(theloader).show() + if($('#transition :selected').val() === 'tile'||$('#transition :selected').val()=== 'random') + { + $('#output-cmd').append("
    WARNING: THIS REQUEST MIGHT TAKE A WHILE") + } + $('.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("WARNING:This might take a while")} + 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("ERROR: " + s + "").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(""+"
    "+"
    "); + $("#output-url").val(data.url) + $("#output-info").html('-ACTUAL SIZE-
    '+Main.filesize(data.size)+'
    '+data.width+'
    '+data.height+'

    '+'see more at →photoblaster gallery'+'
    ') + 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"?"":"")+""),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;g0){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=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;ic)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(;j0)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(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?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
    a",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="
    ",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ",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-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=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=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-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;i0?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;g0){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+~,(\[\\]+)+|[>+~])(\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;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=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 bc[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=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",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.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="

    ";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="
    ";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;g0)for(h=g;h0: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-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-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:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_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
    ","
    "]),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>");try{for(var c=0,d=this.length;c1&&l0?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>");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]===""&&!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=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>/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("
    ").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=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
    ";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;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=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("
    ").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"); +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&&c1){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=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("ERROR: " + s + "").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(""); + 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 @@ + + + + + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + + + + + +
    + +
    + + +
    IMGRID
    +
    3D-GRID-PLANE GENERATOR +
    +hit enter or click GENERATE to get your 2D plane + + +
    + +
    +
    + + + + +
    DIMENSIONS
    +
    +
    + + + + + +
    HEIGHT PX
    WIDTHPX
     
    +
    + + + + + + + + + + +
    SWING 
    TILT 
    ROLL 
    ZOOM  (in/out)  
    + + + + +
     
    CROP WHITESPACE
     
    + +
    IMAGE FORMAT +
    +
    + + + + +
    GRID AND IMAGE
    +
    + +
    + + + +
    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
    + + + + + + + + + +
    GRID THICKNESS:PX  
    GRID COLOR:COLOR LIST
    + + + + + + + + + + + + + + + +
    GRID OPACITY:
    GRID SPACING:
    USE ONLY VERTICAL LINES
    USE ONLY HORIZONTAL LINES
    + + +
    GRID BACKGROUND COLOR COLOR LIST
    + + + +
    OR GRID BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + + +
    GRID-TRANSITION
    + + + + +
    DROP SHADOW
    +
    + + + + + + +
    BACKGROUND
    +
    +
    + +
    BACKGROUND COLORCOLOR LIST
    + + + +
    OR BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + +
    SKYCOLORfor the area above the horizon-lineCOLOR LIST
    + +
    + + + +
     
    USERNAME
    +
    + +
    + + +
    + +
    + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + + + + + + + + + +

    IMGRID

    +

    A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER

    + + + +
    + + + + + + + + +
    SWING
    TILT
    ROLL
    ZOOM
    + +
    + + + + + + +
    THE 3D PLANE...
    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
    + +
    PLANE BACKGROUND COLORSEE COLOR LIST
    + + + +
    OR USE A BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + +
    DROP SHADOW
    SKYCOLORfor the area above the horizon-lineSEE COLOR LIST
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ADJUST LINE:
    LINE THICKNESS:PX
    LINE COLOR:SEE COLOR LIST
    LINE OPACITY:
    LINE SPACING: PX
    USE ONLY VERTICAL LINES
    USE ONLY HORIZONTAL LINES
    + + +
    + + + + + + + +
    GRID BACKGROUND:
    TRANSPARENT? (THE DEFAULT)
    USE AN IMAGE?IMG URL eg:http://ww...
    + +
    USE A COLOR?SEE COLOR LIST
    + + + + + + +
    DITHERED-TRANSITION
    + + + + + + +
    IMAGE SIZE:
    HEIGHT PX
    WIDTHPX
    + + + IMAGE FORMAT
    TRIM WHITESPACE
    + + ← ENTER YOUR NAME if you want +
    + + + + + + + + + +
    + click generate or hit enter to get your 2D plane + + +
    +
    + +
    COPYRIGHT 2011 PEPPER DREAMTEAMER
    +
    + +
    +
    + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + IMGRID - a 3D GRID-PLANE GENERATOR + + + + + + + + + +
    + +
    + + +
    +
    3D-GRID-PLANE GENERATOR +
    +hit enter or click GENERATE to get your 2D plane + + +
    + + +
    +
    + + + +
    DIMENSIONS
    +
    +
    + + + + + +
    HEIGHT PX
    WIDTHPX
     
    +
    + + + + + + + + + + +
    SWING 
    TILT 
    ROLL 
    ZOOM  (in/out)  
    + + + + +
     
    CROP WHITESPACE
     
    + +
    IMAGE FORMAT +
    +
    + + + + +
    GRID AND IMAGE
    +
    + +
    + + + +
    USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
    + + + + + + + + + +
    GRID THICKNESS:PX  
    GRID COLOR:COLOR LIST
    + + + + + + + + + + + + + + + +
    GRID OPACITY:
    GRID SPACING:
    USE ONLY VERTICAL LINES
    USE ONLY HORIZONTAL LINES
    + + +
    GRID BACKGROUND COLOR COLOR LIST
    + + + +
    OR GRID BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + + +
    GRID-TRANSITION
    + + + + +
    DROP SHADOW
    +
    + + + + + + +
    BACKGROUND
    +
    +
    + +
    BACKGROUND COLORCOLOR LIST
    + + + +
    OR BACKGROUND IMAGEIMG URL eg:http://ww...
    + + + + +
    SKYCOLORfor the area above the horizon-lineCOLOR LIST
    + +
    + + + +
     
    USERNAME
    +
    + +
    + +
    + + +
    + + + + +
    + + + + +
    +
    + + + + +COPYRIGHT 2011 PEPPER DREAMTEAMER + + + + + + + + + + diff --git a/frontend/imgrid/sj6v1.zip b/frontend/imgrid/sj6v1.zip new file mode 100755 index 0000000..b5c1592 Binary files /dev/null and b/frontend/imgrid/sj6v1.zip differ diff --git a/frontend/imlandscape/README.md b/frontend/imlandscape/README.md new file mode 100644 index 0000000..e69de29 diff --git a/frontend/imlandscape/img/Heightmap.jpg b/frontend/imlandscape/img/Heightmap.jpg new file mode 100644 index 0000000..ccee392 Binary files /dev/null and b/frontend/imlandscape/img/Heightmap.jpg differ diff --git a/frontend/imlandscape/img/Texture.jpg b/frontend/imlandscape/img/Texture.jpg new file mode 100644 index 0000000..eef3866 Binary files /dev/null and b/frontend/imlandscape/img/Texture.jpg differ diff --git a/frontend/imlandscape/img/generating_background.gif b/frontend/imlandscape/img/generating_background.gif new file mode 100644 index 0000000..b228123 Binary files /dev/null and b/frontend/imlandscape/img/generating_background.gif differ 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 @@ + + + +IMLandscape + + + + + + + + + + + + + + + + + + + + + + +
    +
    + DUMB 3D Landscape +
    +
    + Move Up/Down/Left/Right: Arrow Keys
    + Rotate Up/Down/Left/Right: Shift+Arrow Keys
    + Zoom In/Zoom Out: Fn+Up Arrow/Fn+Down Arrow or Page Up/Page Down
    + Toggle Wireframe: Space
    + Restore original position: Delete
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + +
    Texture URL:
    Heightmap URL:
    +
    +
    +
    +
    + + + + + + + +
    Username: 
    +
    +
    +
    +
    + + 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; iWebGL.
    ', + 'Find out how to get it here.' + ].join( '\n' ) : [ + 'Your browser does not seem to support WebGL.
    ', + 'Find out how to get it here.' + ].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;c0&&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;f0: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=ck?f:k,h=h>m?h:m);b()};this.add3Points= +function(k,m,v,p,x,w){n?(n=!1,c=kv?k>x?k:x:v>x?v:x,h=m>p?m>w?m:w:p>w?p:w):(c=kv?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=ck.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=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=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))),fo&&m.positionScreen.z0&&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;e0){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;cthis.boundingBox.x[1])this.boundingBox.x[1]=b.position.x;if(b.position.ythis.boundingBox.y[1])this.boundingBox.y[1]=b.position.y;if(b.position.zthis.boundingBox.z[1])this.boundingBox.z[1]=b.position.z}}},computeBoundingSphere:function(){for(var b=0,c=0,e=this.vertices.length;cthis.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;b1){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[f].visibleAtDistance)this.LODs[f-1].object3D.visible=!1, +this.LODs[f].object3D.visible=!0;else break;for(;f0&&(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>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;Za0&&(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 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=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;pw&&(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=0;e--)b[e].object==c&&b.splice(e,1)}function M(b){function c(b){var h=[];e=0;for(f=b.length;e65535&&(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=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=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=0;V--)if(O=b.__webglObjects[V],O.render){J=O.object;qa=O.buffer;E=O.opaque;k(J);for(O=0;O0||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=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;e0&&(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;V1&&(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 be?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;p1&&(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) +b?e(c,h-1):u[h] 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=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;ec)c=k.x;else if(k.xe)e=k.y;else if(k.y0?(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=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;k1)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;wb.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=e0?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.ythis.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=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;i0){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.y1?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()0){this.vertices.push(new THREE.Vertex(new THREE.Vector3(0,m,0)));for(n=0;n0){this.vertices.push(new THREE.Vertex(new THREE.Vector3(0,-m,0)));for(n=0;nb&&(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=0;U--){Y=U/v;X=t*(1-Y);Y=u*Math.sin(Y*Math.PI/2);L=0;for(P=E.length;L0||(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;e0)for(f=0;f1&&(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;b0)for(u=0;u2;){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=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;v0;)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>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=0){y=o.invBindMatrices[u];p.invBindMatrix=y;p.skinningMatrix=new THREE.Matrix4; +p.skinningMatrix.multiply(p.world,y);p.weights=[];for(y=0;y1){o=new THREE.MeshFaceMaterial;for(j=0;j1?c[1].substr(0,e):"0";c[1].length=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;fe){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;b0&&(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=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;e1&&(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=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>1^-(n&1);e[8*m+h]=k}f+=c}c=b.length-f;k=new Uint16Array(c);for(h=m=0;h=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;cthis.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;p0&&(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;h0)for(k=0;kv&&(A=v);for(k=0;k0){t=k*p;for(h=0;hsize&&(dist=size);for(m=0;m0){t=zd*m;for(k=0;kk?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.distc.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=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.xc.max.x&&(f=c.max.x-e.origin.x,f/=e.direction.x,u=!1,m=1);e.origin.yc.max.y&&(h=c.max.y-e.origin.y,h/=e.direction.y, +u=!1,n=1);e.origin.zc.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(nc.max.y)return Number.MAX_VALUE;e=e.origin.z+e.direction.z*f;if(ec.max.z)return Number.MAX_VALUE;c.normal.set(m,0,0);break;case 1:m=e.origin.x+e.direction.x*f;if(mc.max.x)return Number.MAX_VALUE;e=e.origin.z+e.direction.z* +f;if(ec.max.z)return Number.MAX_VALUE;c.normal.set(0,n,0);break;case 2:m=e.origin.x+e.direction.x*f;if(mc.max.x)return Number.MAX_VALUE;n=e.origin.y+e.direction.y*f;if(nc.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=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.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;++db;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.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="",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.lengthx",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]*)\/>/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*\s*$/g,ib={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_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>")+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>");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("